二级C问题

[复制链接]
查看11 | 回复4 | 2010-8-5 11:18:25 | 显示全部楼层 |阅读模式
以下程序用以删除字符串中所有的空格,请填空。
#include
main()
{char[100]={“Our teacher teach c language!”};int i,j;
for(i=j=0;s!=‘\0’;i++)
if(s!=‘ ’) {s[j]=s;j++;}
s[j]=【
】;

printf(“%s\n”,s);
}
求解释,谢谢

回复

使用道具 举报

千问 | 2010-8-5 11:18:25 | 显示全部楼层
s[j]='\0',字符串结束标志char s[100]={“Our teacher teach c language!”};这样才对。首先定义了一个字符数组并赋值,再遍历数组,当遇到空格时,不采取任何动作,无视他。把剩余的字符仍保存到原数组中,不需要担心有效数据被覆盖。s[j]='\0',字符串结束标志,'\0'后的字符不会被输出。
回复

使用道具 举报

千问 | 2010-8-5 11:18:25 | 显示全部楼层
空格应填:‘\0’(即字符串结束符)。新的字符串 比 原来的短,而输出字符串 需要结束符。
回复

使用道具 举报

千问 | 2010-8-5 11:18:25 | 显示全部楼层
'\0',结束标识,要不然,不能用%s来输出字符串的。还有你没有定义s这一变量
回复

使用道具 举报

千问 | 2010-8-5 11:18:25 | 显示全部楼层
s[j]='\0';
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行