c语言字符串结束时什么时候用'\0’,什么时候用"\0",什么时候用0?

#include<stdio.h>voidfun(char*s,char*p){inti,j,n,x,t;n=0;for(i=0;s[i]!='\0';i++)n++;f... #include <stdio.h>
void fun(char *s, char *p)
{int i, j, n, x, t;
n=0;
for(i=0; s[i]!='\0'; i++) n++;
for(i=1; i<n-2; i=i+2) {
/**********found**********/
t=i;
/**********found**********/
for(j=i+2 ; j<n; j=j+2)
if(s[t]>s[j]) t=j;
if(t!=i)
{x=s[i]; s[i]=s[t]; s[t]=x;}
}
for(i=1,j=0; i<n; i=i+2, j++) p[j]=s[i];
/**********found**********/
p[j]=——;
}
最后的p[j]应该是用p[j]='\0'还是p[j]="\0"?为什么呢?
展开
 我来答
lanyangyang312
2011-03-11 · TA获得超过124个赞
知道答主
回答量:36
采纳率:0%
帮助的人:40.7万
展开全部
应该是'\0' ,"\0"是字符串,理解时可以这样理解,反正“\0”是的字符串,把“\0”当做“a”这个字符串,系统在把字符串的值给数组时,实际上自动在字符串最后面加了“\0”,来判断字符串是否结束,比如说b[ ] = "a",则数组b中有两个元素,即b[ ] = { " a\0 " }
本题中p[ j ] 只能存放一个字符,所以应该为‘ \0 ’
希望对你有帮助~
追问
我在用某机试测试光盘做这题时,系统判断'\0'为错"\0"为正确
是不是光盘的设计有问题?
追答
估计是光盘问题吧!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式