C语言。输入一个字符串,删除非数字字符后将数字倒置后输出

#include<stdio.h>
#include<string.h>
main()
{
char str[100],ch;
int i,k;
printf("input a string:\n");
gets(str);
i=0;
k=0;
while(str[i]!='\0')
{
if((str[i]>='0')&&(str[i]<='9'))
{
/*******found********/
str[k]=str[i];
k++;
}
i++;
}
/*******found********/
printf("\0");

for(i=0;i<k/2;i++)
{
ch=str[i];
str[i]=str[k-1-i];
str[k-1-i]=ch;
}
puts(str);
}

这个是我自己写的,但是并没有把字母给删除,比如输入123KJ,输出就是321KJ,KJ还是在没删除,求高手帮忙改下

楼主这里出错了:
while(str[i]!='\0')
{
if((str[i]>='0')&&(str[i]<='9'))
{
/*******found********/
str[k]=str[i];
k++;
}
i++;
}
str[k]='\0';
应该在while语句后加一句:str[k]='\0';表示字符串结束,因为为新的字符串了,删除字母后
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-14
楼主这里出错了:
while(str[i]!='\0')
{
if((str[i]>='0')&&(str[i]<='9'))
{
/*******found********/
str[k]=str[i];
k++;
}
i++;
}
str[k]='\0';
应该在while语句后加一句:str[k]='\0';表示字符串结束,因为为新的字符串了,删除字母后本回答被提问者采纳
相似回答