
c语言删除语句s[j++]=s[i];s[j]='\0',我不太懂,解释一下 5
展开全部
j++ 是后加加。表达式里j 不自增,出了表达式再自增1。
所以
s[j++]=s[i]; s[j]='\0';
可以按步写成 s[j]=s[i]; j=j+1; s[j]='\0'。
所谓删除,是指字符串里发生的事。 s[j]='\0' ;也就是把字符串结束符 放在 s[j] 位置,这样字符串 s 有效字符串只算到s[ j] 以前, 后面的字符不起作用了。等于删除了。 例如:
char s[12]="abcde12345"; // 原来的字符串
int j=2,i=9;
printf("%s\n",s); // 输出原来的字符串 abcde12345
s[j]=s[i]; // 把s[9] 放到 s[2] -- 字符c 变字符 5
printf("%s\n",s);
j=j+1;
s[j]='\0'; // 删除 s[j] 以后的
printf("%s\n",s);
执行上面语句,输出为:
abcde12345
ab5de12345
ab5
等于删除了 cde1234
所以
s[j++]=s[i]; s[j]='\0';
可以按步写成 s[j]=s[i]; j=j+1; s[j]='\0'。
所谓删除,是指字符串里发生的事。 s[j]='\0' ;也就是把字符串结束符 放在 s[j] 位置,这样字符串 s 有效字符串只算到s[ j] 以前, 后面的字符不起作用了。等于删除了。 例如:
char s[12]="abcde12345"; // 原来的字符串
int j=2,i=9;
printf("%s\n",s); // 输出原来的字符串 abcde12345
s[j]=s[i]; // 把s[9] 放到 s[2] -- 字符c 变字符 5
printf("%s\n",s);
j=j+1;
s[j]='\0'; // 删除 s[j] 以后的
printf("%s\n",s);
执行上面语句,输出为:
abcde12345
ab5de12345
ab5
等于删除了 cde1234
2015-11-27 · 做真实的自己 用良心做教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注

展开全部
j++的运算完成是在该运算所在的小程序块完成后才发生的,也就是说,
把s[i]赋给s[j++]时,j自加的运算还没有发生,如果是++j的话,就是立刻加一,再参与之后的运算。
把s[i]赋给s[j++]时,j自加的运算还没有发生,如果是++j的话,就是立刻加一,再参与之后的运算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现将s[i]中的值移入s[j]中,j自加1,然后将其中的值替换为结束符,原s[j]中的值就被删除了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s[j]=s[i];然后句末j++ (就是j+1的意思)
'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'
'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询