首页 新闻 会员 周边

C从字符串去掉多与空格

0
悬赏园豆:10 [已关闭问题] 关闭于 2011-01-16 13:41

#include <stdio.h>
#include <string.h>

void main()
{
 char string[1000];
 scanf("%s",string);
 char *string_temp = string;
 int i,j;
 for(i=0,j=0;string_temp[i] != EOF;)
 {
  string[j++] = string_temp[i++];
  while(string_temp[i] == ' ')
  {
   i++;
  }
 } 
  string[j] = '\0';
 printf("%s",string_temp);
}

问题补充: 谢谢大家,问题解决了,我错的原因是scanf也是以空格或回车结束,所以不能读取空格后的字符串,解决是: 把scanf换成gets,并把EOF换成'\0'
ttssrs的主页 ttssrs | 初学一级 | 园豆:82
提问于:2011-01-02 22:53
< >
分享
所有回答(4)
0

你想要问什麽???

飘过的浮云 | 园豆:215 (菜鸟二级) | 2011-01-03 23:39
这个程序有错,我想用这个程序去掉字符串之间多余的空格,各字符串之间只保留一个空格
支持(0) 反对(0) ttssrs | 园豆:82 (初学一级) | 2011-01-04 18:22
既然你用了For循环,那为何还要写i++,j++?这不是加两次了吗?
支持(0) 反对(0) 飘过的浮云 | 园豆:215 (菜鸟二级) | 2011-01-04 19:14
0

一般是用函数去前后空格的吧。

还是小混混 | 园豆:125 (初学一级) | 2011-01-04 09:51
0

这个程序有点让人晕

Daywei | 园豆:551 (小虾三级) | 2011-01-06 15:17
0

如果 单纯想去掉 字符串去开头和结尾的空格 可以用

 

string aa=“ gello ”;
aa
= aa.Trim();

这样aa就等于“hello” 了

隋凯 | 园豆:65 (初学一级) | 2011-01-16 13:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册