1 字符串数组定义 \0
char a[]=""
或者
char a[10];
cin>>a
这些都回在数组最后添加\0!strlen()不计算\0
用字符串给数组赋值,数组长度=字符串长度+1(\0)
逐个字符赋值时,不会自动添加\0
2 字符串数组常见函数及自己的实现
函数的输入都是字符数组(带\0的),以\0判断数组结束!
3 string
- string注意大小sizeof()=32(和编译器有关),不直接存放数据,在别处开辟空间存储,string对象只存放 了内存空间地址和一些其他信息。
- string s=“字符串”; char a[]="zifuchuan";string s=a; 可以字符串或者数组给string赋值;
- string有常见的成员函数c_str(),返回const char*类型。
- size()返回类型size_type属于无符号int,所以不要和负数比较。例如:if(s.size()<-2) //一般都会成立
- s[]可以访问单个字符,主要不能越界,必须初始化后才可以。 string s;s[0]='a'//这会报异常out of rang
- +必须左右至少有一个string 类型: string s="nih"+"nihap";错!
- string s;cin>>s;会自动忽视开头的空白(空格 换行 制表符等)。