c字符串
一般不这么用的,仅了解。

多用这些类

char name[3] = {'r'} 相当于char name[3] = {'r','\0','\0'} 此定义法,系统会自动从未初始化的元素开始,将之后的元素赋值为\0,
而且这种方法定义时,系统不会自动在字符串的末尾加上字符串结束符。(这种写法char n[ ] = {'r'};更能说明问题。 )

strlen获取的是不带\0结束符的大小,即是字符串本身的大小,sizeof测得大小是内存的大小。 {char a[10]; sizeof(a) = 10;}
char str【】 = “hello\n\0\n”,则strlen(str)值是6. 因为strlen遇见\0结束符则结束所以值是6, sizeof(str) 值是9。(字符串末尾补结束符)
c语言字符串的输入和输出

注意:若是直接赋值 char name[16]; name="小芳" 这是错误的。
运行结果:

原因:gets()在缓冲区读到了回车符。gets是读一行,直到遇到回车符。(gets()不将回车符送入变量,且会丢弃回车符,回车也不在输入缓冲区中。在最后一个字符被读入的时候会立即写入空字符‘\0’)
解决方法:在cin/scanf之后,清空输入缓冲区 fflush(stdin)。
c语言字符串额外两种用法:
char *a = "hello,world";
//指针数组,elems[0] 就是指向 ”翠花”,类似的:

浙公网安备 33010602011771号