不知道为什么提交OJ通不过。
先保存下。再看看还有那里有问题。
思路具体是把非数字全部转化为*,然后去掉重复的*。
原因:
//char str2[100]={0};
还会输出0
Description:
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。
Input:
输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。
Output:
输出处理好的字符串str2。
Sample Input:
<pre>$Ts!47&*s456 a23* +B9k</pre>
Sample Output:*47*456*23*9*
#include <stdio.h>
#include <string.h> int main() { char str1[100]={0}; //char str2[100]={0}; gets(str1); int s; s=strlen(str1); int i; for (i = 0; i < s; ++i) { if(str1[i]<'0'|| str1[i]>'9' ) str1[i]='*'; } for (i = 0; i < s; ++i) { if((str1[i]=='*' && str1[i+1]!='*')||str1[i]!='*') //str2[i]=str1[i]; printf("%c",str1[i]); } printf(" "); return 0; }