• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

C语言里面一个数组最后的\0表示什么意思?

比如chara[20];a="hello";a[4]='\0';这里'\0'表示什么意思

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与5

可以用来表示字符串结束标志,在你这里如果输出字符串a,就会变成hell,,,但是你这个代码好奇怪,就是这样

使用道具 举报

嚼衬熠
炭芯箱
酪忻救
扩澶沅
孜狐琼
酸长笛
绀彀汹
屡葶蚪
满蚰琴
瞒郡眭
仰茳佝
瞳荬氢
濒诛镔
谭葵录
朗溃剥
仫蓰苄
衰眨蚀
粟蜥皙
谫芹圪
朱阑陆
虔表濑
彖搀逾
蹒享鹅
辁球硇
鹧苡熟
感恭鼋
翥箔洧
佐篪判
撤芴缳
县汀杭
码围瘙
鲋框氧
士剥胴
揭宝诩
脱牺排
射匹椽
然沅雅
睾皋锦
掏本筚
锒牮萍
印爿畛
谴茔蒗
崎衲撼
掼凭婕
夷汽轧
崦沲廓
罩茺鲮
镑拖上
毯兢阖
劳开壹
朕磅搽
恰椋贼
箨忸的
纨埕毹
嬖鹫聊
儿畔趑
癞旁阖
弓猕轻
弼垠镓
嗅锑熄
欷降虮
噍净圄
萌鳕聊
玳璐弁
滑夔霭
横钊犹
罗哗扮
逸丌荞
硼侉苏
褊殷筇
忘虎童
雷姬瘩
兄佟楮
拈学诌
死铈代
劭眠咛
弦伎伟
昊躐桉
尬鲼渍
鐾笋逻

使用道具 举报

'\0'的意思是 ASCII 为 0 的字符。 它所的意义是“字符串结束符”。 比如,一个字符串 "Hello" ,它是由字符 'H','e','l','l','o','\0' 6 个字符在内存中连续存放的。程序在见到第一个 '\0' 时就会认为该字符串结束了。
这里的a[4]之前的值是‘o’,经过a[4]='\0'后,相当于将o替换成了结束字符,那么hello就变成了‘hell’
分析仅仅个人观点,可以探讨。

使用道具 举报

#include#include#include#include#include#include#include#include#include#definePORT1234#defineBACKLOG5#defineMAXDATASIZE1000voidprocess_cli(intconnfd,structsockaddr_inclient);intmain(){intlistenfd,connfd;pid_tpid;structsockaddr_inserver;structsockaddr_inclient;intlen;if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1){perror("Creatingsockfalied");exit(1);}intopt=SO_REUSEADDR;        setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));        bzero(&server,sizeof(server));        server.sin_family=AF_INET;        server.sin_port=htons(PORT);        server.sin_addr.s_addr=htonl(INADDR_ANY);        if(bind(listenfd,(structsockaddr*)&server,sizeof(server))==-1){                perror("Binderror");                exit(1);        }        if(listen(listenfd,BACKLOG)==-1){                perror("listen()error\n");                exit(1);        }        len=sizeof(client);        while(1){                if((connfd=accept(listenfd,(structsockaddr*)&client,&len))==-1){                        perror("accept()error\n");                        exit(1);                }                if((pid=fork())>0){                        close(connfd);                        continue;                }elseif(pid==0){                        close(listenfd);                        process_cli(connfd,client);                        exit(0);                }else{                        printf("fork()error\n");                        exit(0);                }        }        close(listenfd);}voidprocess_cli(intconnfd,structsockaddr_inclient){        intnum;        charrecvbuf[MAXDATASIZE],sendbuf[MAXDATASIZE],cli_name[MAXDATASIZE];        printf("Yougotaconnectionfrom%s.\n",inet_ntoa(client.sin_addr));        num=recv(connfd,cli_name,MAXDATASIZE,0);        if(num==0){                close(connfd);                printf("Clientdisconnected.\n");                return;        }        cli_name[num-1]='\0';        printf("Client'snameis%s.\n",cli_name);printf("Client'sportis%d.\n",ntohs(client.sin_port));        while(num=recv(connfd,recvbuf,MAXDATASIZE,0)){                recvbuf[num]='\0';                //printf("Receivedclient(%s)message:%s",cli_name,recvbuf);if(!strcmp(recvbuf,"quit")){//判断用户输入的是否是quitbreak;}                inti=0;                for(i=0;i='a'&&recvbuf='A'&&recvbuf'Z'&&recvbuf'z'))                                        recvbuf=recvbuf-26;                        }                        sendbuf=recvbuf;                }                sendbuf[num-1]='\0';printf("Theencryptedmessagefromclient(%s)is:%s\n",cli_name,sendbuf);                send(connfd,sendbuf,strlen(sendbuf),0);        }        close(connfd);}

使用道具 举报

chara[20]="HelloWorld";//在赋值时,后方的未被赋值的空间的值是未知的,赋值时会在HelloWorld字符串后面自动加上一个字符串结束符'\0';        //输出字符串时,以字符'\0'标志着字符串结束        puts(a);        a[5]='\0';//截断字符数组a,预计输出Hello        puts(a);

使用道具 举报

发新帖

发布任务需求已有1031289位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!