c/c++ 字符数组、字符指针和字符串类型总结帖
一、字符数组
定义略
初始化方式:
1 char c[10]={'a','b','c','d','e','f','g','h','i','j'};
注:当初值个数小于规定长度时,其余元素自动填充为 '\0'
2 char c[]={'a','b','c','d','e','f','g','h','i','j'};
系统自动计算长度为10
3 char c[]="abcdefghij"; 或 char c[]={"abcdefghij"};
此时长度为11,因为创建字符串的时候最后面自动添加了'\0','\0'的ASC2码为0
字符串输出:
谨记一条,以'\0'为结束符,如以下程序是不安全的
string str="hello";cout<<str.size()<<endl;//长度检测cout<<str.empty()<<endl;//检测是否为空输出:
5
0
需要指出的一点是:
str.size()返回值的类型是string::size_type,存储str.size()结果的变量必须为string::size_type类型,虽然不清楚它具体是个神马类型(连c++ primer上都这么说),但可以肯定是不同于int类型的,因为它是unsigned类型的,这样它能表示的长度是signed类型的两倍,此外肯定还有别的优越性。
下标操作的时候,str用法与数组名类似。
如非特殊需要,笔者的编程基本全部使用了此类库。