#include"string.h"
void main()
{
char s[]="Beijing I love you!";int i,j,k,n;
n=strlen(s);
for(i=0;i<n-1;i++)
{
for(j=(i+1);j<n;j++)
if(s[i]==s[j])
{
for(k=j;k<n-1;k++)
s[k]=s[k+1];
n--;
}
}
s[n]='\0';printf("%s",s);
}
运行程序输出Ilovyu中间为什么没有空格呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2018-11-18 17:50关注
你的程序的作用是,将字符串中重复的字符去掉,因为beijing后面有个空格了,所以后面的空格就删除了,要保留空格,可以修改下
#include"string.h" int main() { char s[]="Beijing I love you!";int i,j,k,n; n=strlen(s); for(i=0;i<n-1;i++) { for(j=(i+1);j<n;j++) if(s[i]==s[j] && s[i] != ' ') // ignore the whitespace { for(k=j;k<n-1;k++) s[k]=s[k+1]; n--; } } s[n]='\0';printf("%s",s); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报