c语言字符串

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:55:05
c语言字符串后面的‘\0’是编译器自动加上去的吗

像strcat strcpy之类的函数,怎么处理字符串后面的‘\0’的
...........我知道是空字符 我想知道如何处理的

问:c语言字符串后面的‘\0’是编译器自动加上去的吗 ?
答:是。比如你声明一个字符串"hello",则编译器会将其更新为"hello\0"。但需要注意的是,如果你用它给一个字符串变量初始化,但该变量长度小于strlen("hello\0"),也就是小于6,则字符串变量的末尾不会以'\0'结束,你在使用时就得留心了。

问:像strcat strcpy之类的函数,怎么处理字符串后面的‘\0’的?
答:因为在C语言中,'\0'就是字符串结束的标志,所以一旦这两个函数执行过程中读入'\0',则将该此空字符复制到目的字符串尾部后返回。

\0是终止符,默认情况下,在字符串末尾系统会自动添加一个终止符。所以定义数组a[5],一般最好是只用前四位,最后一位存放终止符,如果非要用第五位也不是不可以。strcat strcpy会自动去掉第一个字符串的终止符

就是'\0'才给了函数执行的结束预告,在用函数测试字符串长度时是不计算'\0'在内的,但是实际还是占个位

对,是自己加上去的,strcat strcpy一遇到‘\0’停止复制了

这是一个空字符.