现在的位置: 首页 > 综合 > 正文

C++ 字符串

2016年02月05日 ⁄ 综合 ⁄ 共 1855字 ⁄ 字号 评论关闭
/*今天复习下字符串的相关知识
第七章 字符串---分析文本
正常的程序都需要和用户进行交互,那么字符串肯定是必须的。比如以前的提示用书输入一个数字等。
7.1 字符串的存储方式 
计算机以数字化的方式存储文本。字符串中的每个字节对应ASCII。感兴趣可以用翻书看一下。
字符串里面的每个元素基类型是字符。一个汉字是两个字节。字符串末尾有个\0 表示结束。
其实你在敲键盘的时候,实际上传入的是ASCII值。字符串就是字节流。
7.2 字符串的声明和初始化
字符数组嘛。
字符指针也可以。 注意末尾都是有\0的、
7.3 字符串处理函数 
常见的strcpy 和 strcat 函数。以及他们加n版本和不加n的版本。其中n可以控制越界、
关于getlint 函数的问题。 如果你使用的字符数组或者指针,那么调用格式是cin.getline(const char*, n)
如果你用的是string 字符串格式是: getline(cin,n) n是个数。cin是输入流、记得加上相关头文件。
getline 函数的用途是读取一整行输入,在你按下回车之前都算,白空格不在是截止他们。
getline 函数还有几个重载函数。最后一个参数可以指定截止字符。一共三个参数。
注意下转义字符。用\\可以取消转义。
7.4 读取字符串的输入
首先是cin>>语句,cin和>>操作符表示从键盘获得字符存到相应的变量里。
但是用cin语句在获取字符串的时候可能不会符合你的预期操作。因为它是无法获取整行输入。也就是说
在用户按下回车键之间输入的所有数据,它只能获取第一个白空格。白空格是指 空格,制表符,换行符的统称。
它只能获取第一个白空格之前的输入。不信可以实验下。
同样的,你用它输入变量的时候也是如此。在空格之后的都不算了。
最好在一个程序里只使用一种获取输入的方式。因为getline 和cin对换行符的解释是不同的。
介绍下 atoi 和atof atoll 等函数。从数字字符串中提取数字。比如“1234” 注意我写的是字符串1234,不是纯粹的
的数字,但是你可以通过atoi 函数进行提取数字。同时你还可以用erase 函数擦掉里面的非数字内容。
getline 函数里,如果你啥都不输人的话,就按下回车键,那么字符串的常度就是0 ,你可以根据这个来判断是否
跳出循环。
大小写转换 toupper ,tolower 函数。头文件cctype.
7.5 单个字符和字符串。 
单个字符在C++中是被解释成ascii 码的。而字符串是被解释为地址,原因是字符串和指针关系比较乱啦。
7.6  c++中的string 类型。
c 和c++里以\0为结束标记的都称为c字符串。  
string类型很方便,很好用,不需要那么多函数了。可以直接进行赋值,比较。
其次string里面元素基类型也是字符。 你可以把string里的每个元素用数组的方式输出它。
其次就是string 一些函数了。
讲一下 sizeof 和length 函数。sizeof 是返回占用的字节数,和字符串多少没关系。length 返回的是当前的长度。
如 char str[40] ="hello"  其中sizeof 返回40个字节,但是length 却是只有5 ,截止字符是不计算的。
总结: 
1)文本字符串里面其实存储的是ASCII值。 还要\0 ,
2) 区分c字符串是看是否使用了0值字节。
3)字符串的长度和字符串当前的长度问题。
4)stcpy strcat 等函数。
5)strlen 函数
6)字符串复制的时候不用越界,可以用strncpy 控制下。
7) learn to use cin and getline  Drive me crazy !!chinese characters!!
8)"a" and 'a'  difference between them 
9)stl 库中的string类型 。很好用。可以考虑放弃c 字符串了。但是某些方面,c字符串也很强大。*/
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char str[10] = "AAllo!";
cout << (int)str[1] << endl;
system("pause");
return 0;
}

#include<iostream>
using namespace std;
int main(){
	char str[39];
	//while (cin >> str){
	//	cout << str << endl;
	//}
	cin >> str;
	cout << atoi(str);
	system("pause");
	return 0;
}

【上篇】
【下篇】

抱歉!评论已关闭.