c语言字符串的一些知识
2018-03-19 13:52
176 查看
由上面的例子可以知道111和222,222和333之间的换行符\n被丢弃,只有333后面的换行符\n被遗留在缓冲区,因为a和b按%s读取内容时,自动丢弃了缓冲区最前面的换行符\n,然后第一个getchar()读取了缓冲区的第一个字符:'\n',后面两个getchar()则分别读取了‘a’、‘b’,语句运行到这里,其实缓冲区还遗留着c'\n',若想清除,可以使用语句while(getchar()!='\n');
而下面的代码段则验证了空字符‘\0’就是数字0
再一个,无论从终端显示屏输入数字、字母还是啥,都是默认的字符型,再由编译器转换为相应的数据类型存入相应的变量。
然后给字符数组赋初值时,如果只赋部分,则剩余的未赋值元素默认设为数值0,即空字符‘\0’,此时该字符数组相当于一个字符串;如果全部元素都赋值,字符数组结尾没有空字符。 若分别用字符串打印函数打印它们,则第一个打印数组第一个空字符之前的所有元素,第二个则顺着相邻内存一直往下打印,直到遇到第一个空字符为止:
sizeof()计算的是系统为参数分配的空间大小,参数可以是数组、变量,数据类型;而strlen()的参数可以是字符串或字符串指针,它的原理是计算指针所指的地址到第一个结尾空字符‘\0’的空间大小。所以当数组(或字符串)做函数参数时,自动退化为指针,在该函数内部使用sizeof()得到的是系统为该指针分配空间的大小,而strlen()则依然能计算出数组大小:
当用连续的scanf()或getchar()连续读取字符时,如果一旦开启了读取缓冲区“模式”,且缓冲区非空,后面的语句会自动执行,而不是执行一句等待换行符信号再执行一句:
相关文章推荐
- C语言的数组、字符串等一些知识总结
- C语言中操作字符串的一些函数源代码
- C语言的一些误用和知识总结
- JavaScript的一些基本知识 -- 字符串
- C语言的一些小知识
- 【转贴】C语言中操作字符串的一些函数源代码
- C语言中数组的一些基本知识小结
- C语言的一些误用和知识总结
- Python学习第三章《字符串》(成为高手前必须知道的一些基础知识)
- c语言中的一些小知识
- c语言学习之基础知识点介绍(十一):字符串的介绍、使用
- 一些C语言中字符串的算法问题解决实例小结
- C语言中关于字符串的一些常用函数
- 一些小知识小经验(使用java或者c语言实现的socket服务器的优化技巧)
- C语言中操作字符串的一些函数源代码
- c语言中关于字符串的一些常规处理
- C语言一些基础知识
- python一些关于字符串的知识
- C语言的一些误用和知识总结
- C语言中操作字符串的一些函数源代码[转]