C语言 字符串 编程 输入字符结束时赋值'\0'
#include<stdio.h>intmain(void){inti,n,m;chars[10];printf("Enterastring:");i=0;while((...
#include<stdio.h>
int main(void){
int i,n,m;
char s[10];
printf("Enter a string:");
i=0;
while((s[i]=getchar())!='\n')
i++;
s[i]='\0';
for(n=0,m=i-1;n<m;n++,m--)
if(s[n]!=s[m])
break;
if(n>=m)
printf("It is a plalindrome\n");
else
printf("It is not a plalindrome\n");
return 0;
}
while语句循环结束后s[i]='\0'语句的效果是什么,不是整个数组变ASCII码0的字符了吗,干嘛要加这样一个语句 展开
int main(void){
int i,n,m;
char s[10];
printf("Enter a string:");
i=0;
while((s[i]=getchar())!='\n')
i++;
s[i]='\0';
for(n=0,m=i-1;n<m;n++,m--)
if(s[n]!=s[m])
break;
if(n>=m)
printf("It is a plalindrome\n");
else
printf("It is not a plalindrome\n");
return 0;
}
while语句循环结束后s[i]='\0'语句的效果是什么,不是整个数组变ASCII码0的字符了吗,干嘛要加这样一个语句 展开
4个回答
展开全部
while((s[i]=getchar())!='\n')
i++; //这两句是完成数据输入,每输入一个,i就会加1,直到遇到输入回车符
s[i]='\0'; //一、这句不是while循环的内容,二、此功能为:将回车符变成字符串结束符(只是针对数组的某一位进行操作,而不是改变整个数组内容),你这个代码中可见,回车符不是你想要的数据,只是输入结束的一个判断值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示这个之后的字符都不是这个字符串的。
也就是说,整个字符串内容只是从开头到'\0'
比如:char s[10]="123";
printf("%s",s);//是123
s[1]='\0';
printf("%s",s);//是1
另外,如果'\0'之后还有其他字符,则全部忽略,这是一种策略,c风格字符串就是这样。
如果你忘了加(一般系统帮你加),程序会崩溃
也就是说,整个字符串内容只是从开头到'\0'
比如:char s[10]="123";
printf("%s",s);//是123
s[1]='\0';
printf("%s",s);//是1
另外,如果'\0'之后还有其他字符,则全部忽略,这是一种策略,c风格字符串就是这样。
如果你忘了加(一般系统帮你加),程序会崩溃
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
‘\0'是字符串结束符,字符串处理函数遇到该标志时,就会停止处理。
比如在这段代码中,输入abcda回车,s[5] = '\0'; 字符处理函数strlen(s) == 5,如果不置该值,这类函数就会异常,严重时,会系统崩溃。
比如在这段代码中,输入abcda回车,s[5] = '\0'; 字符处理函数strlen(s) == 5,如果不置该值,这类函数就会异常,严重时,会系统崩溃。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询