ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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,strlenstr)值是6. 因为strlen遇见\0结束符则结束所以值是6, sizeofstr) 值是9。(字符串末尾补结束符)

 

c语言字符串的输入和输出

 

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

 

 运行结果:

 

 原因:gets()在缓冲区读到了回车符。gets是读一行,直到遇到回车符。(gets()不将回车符送入变量,且会丢弃回车符,回车也不在输入缓冲区中。在最后一个字符被读入的时候会立即写入空字符‘\0’)

解决方法:在cin/scanf之后,清空输入缓冲区  fflush(stdin)。

 

c语言字符串额外两种用法:

char   *a   = "hello,world";   

//指针数组,elems[0] 就是指向 ”翠花”,类似的:

 

posted on 2022-04-16 18:32  理想主义者光芒万丈  阅读(59)  评论(0)    收藏  举报