加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

C语言中字符串结束符分析

发布时间:2021-11-20 16:24:00 所属栏目:教程 来源:互联网
导读:C语言中字符串结束符探究 #include stdio.h #include string.h int main() { char *a = hello world; int i = 0; for(i = 0; i 12; i++) if(a[i] == ) printf(n); else putchar(a[i]); //输出结果为:hello world 表明字符串常量最后默认会添加一个

C语言中字符串结束符探究
 
#include <stdio.h>
#include <string.h>
int main()
{
        char *a = "hello world";
        int i = 0;
        for(i = 0; i < 12; i++)
                if(a[i] == '')
                        printf("n");
                else
                        putchar(a[i]);
//输出结果为:hello world    表明字符串常量最后默认会添加一个''这个字符串结束符。
        printf("n");
        printf("The length of "hello world" = %dn",strlen(a));
//输出结果为: 11  。表明strlen不包括'’这个字符串结束符。
        printf("n");
 
        char buf[10] = "helle world";
        for(i = 0; i < 11; i++)
                if(buf[i] == '')
                        printf("n");
                else
                        putchar(buf[i]);
/**输出为 hello worl@    。输出了11个字节。最后一个字节不是'',而是@(这个字节是随机的)。
从上面情况可以看出,将数组中赋值字符串常量时,如果字符串常量长度大于数组长度,数组最后一位并不是'',如果字符串常量长度小于数据长度,那么数据中剩余部分将会用''补全。如buf[10] = "hello",那么buf的buf[5] ---buf[9]都将会被填充为''
**/
        printf("n");
        char *b = "hello world";
        char ba[10] = "hello world";
        printf("&a = %p,&b = %p,&buf = %p,&ba = %p n",a,b,buf,ba);
        if(*(a+11) == '')
                printf("n");
        return 0;
}
 
 

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读