
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"?为什么呢? 展开
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"?为什么呢? 展开
1个回答
展开全部
应该是'\0' ,"\0"是字符串,理解时可以这样理解,反正“\0”是的字符串,把“\0”当做“a”这个字符串,系统在把字符串的值给数组时,实际上自动在字符串最后面加了“\0”,来判断字符串是否结束,比如说b[ ] = "a",则数组b中有两个元素,即b[ ] = { " a\0 " }
本题中p[ j ] 只能存放一个字符,所以应该为‘ \0 ’
希望对你有帮助~
本题中p[ j ] 只能存放一个字符,所以应该为‘ \0 ’
希望对你有帮助~
追问
我在用某机试测试光盘做这题时,系统判断'\0'为错"\0"为正确
是不是光盘的设计有问题?
追答
估计是光盘问题吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询