字符串处理,去掉空格

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:15:53
#include<stdio.h>
#include<string.h>
main()
{
char ch[20],sh[20];
int i,j,m=0;
scanf("%s",sh);
j=strlen(sh);
for(i=0;i<j;i++)
{
if(sh[i]==' ')
m++;
else
ch[i-m]=sh[i];
}
printf("%s\n",ch);
printf("%d",m);
}
上面写的程序,有点问题,是因为m没有自增的原因,不知道怎么改,希望高人指点

#include<stdio.h>
#include<string.h>
main()
{
char ch[20],sh[20];
int i,j,m=0;
//scanf("%s",sh);
// 应该用gets,因为scanf("%s")会把空格当分隔符,只会取空格之前的内容
gets(sh);
j=strlen(sh);
for(i=0;i<j;i++)
{
// 如果当前字符不是空格,就放到新的字符串里面去
if(sh[i]!=' ')
ch[m++]=sh[i];
}
// 加上字符串结束标志
ch[m]='\0';
printf("%s\n",ch);
printf("%d",m);
}

#include<stdio.h>
#include<string.h>
main()
{
char ch[20],sh[20];
int i,j,m=0;
scanf("%s",sh);
j=strlen(sh);
for(i=0;i<j;i++)
{
if(sh[i]==' ')
{
continue; //如果是空格,则跳出本次循环
}
else
{
ch[m]=sh[i]; //如果不是空格,拷贝到ch中!
m++;
}
}
printf("%s\n",ch);
printf("%d",m);
}