有句代码str[j]='\0'是什么意思啊?

电信用户 2010-03-18 01:18:00
有句代码str[j]='\0'是什么意思啊?
int i,j;
for(i=j=0;str[i]!='0';i++)
int(str[i]!=ch)
str[j++]=str[i];
str[i]='\0';
最后那句代码,把空格赋给字符串?说上写的是把空格复制进字符串啊,不知道该怎么理解了,没见过这么写的啊,求助大哥大姐们啦
...全文
3804 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsr2009 2010-03-18
  • 打赏
  • 举报
回复
'\0' 这是字符串结束符.不过在2进制数据中就要注意,因为就不能以这个作为结束符.
huanmie_09 2010-03-18
  • 打赏
  • 举报
回复 1
这段代码的意思是将某一字符数组中的某一个字符去掉吧。
如源串:"abbacdda";
剔除字符:'a',
那么运行这段程序的结果将源串置为:
"bbcdd".

#include<stdio.h>

int main(){
char str[10] = "abbacdda";
char ch = 'a';
int i, j;
for(i=j=0; str[i]!='\0'; i++) {
if(str[i] != ch) { /*如果str[i]不等于某一字符ch*/
str[j]=str[i]; /*将当前字符赋值到原串*/
j++;
}
}
/*str[i]='\0'; */ /*个人认为应该改为下面那句, 置字符串结束符号'\0'*/
str[j] = '\0';
printf("str=%s\n", str);
return 0;
}
a7182388 2010-03-18
  • 打赏
  • 举报
回复
C语言中的字符串定义是:以'\0'结束的一串字符。
C语言中许多与字符串操作相关的数组都是要以'\0'来作为操作结束标志的,而有些函数是可以为你自动加上'\0'结束符。但针对你上面得这段代码,就只能自己在字符串最后加上'\0',不然在使用其他字符函数操作时,会出现意想不到的错误!
比如下面这个例子:
-------------------------------------------------------------------------------------------------
char* p="how are you ?";
char name[10];

strcpy(name,p); //name改变为"how are yo" ====>无结束符'\0',错误!
name[sizeof(name)-1]='\0' // 和上一步组合,弥补结果。但要注意,字符传递错误!
-------------------------------------------------------------------------------------------------
至善者善之敌 2010-03-18
  • 打赏
  • 举报
回复
就是添加个结束符号,以便于程序判断字符串结束!
yyc23 2010-03-18
  • 打赏
  • 举报
回复
'\0' 这是字符串结束符
冻结 2010-03-18
  • 打赏
  • 举报
回复
str[j]='\0';
在字符串最后加一个0字符,表示字符串的结束。
并不是一个空格。
yzx714 2010-03-18
  • 打赏
  • 举报
回复
在末尾添加上\0标志结束

70,025

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧