纠结!看不错哪错了 为什么跟我想要的不一样 保留整数程序题
C语言实验——保留整数Time Limit: 1000MS Memory limit: 65536K
题目描述
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。
输入
输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。
输出
输出处理好的字符串str2。
示例输入
$Ts!47&*s456 a23* +B9k示例输出
*47*456*23*9*
我写的
#include<stdio.h>
#include<string.h>
int main()
{
char str1[100], str2[100] ;
int flag, j = 0, i , k;
gets(str1) ;
k=strlen(str1) ;
for(i=0 ; i < k ; i++)
{
if(str1[i]<'0'||str1[i]>'9')
flag=1 ;
else if(flag==1)
{
str2[j] = '*' ;
j++ ;
flag = 0 ;
}
if(str1[i] >= '0' && str1[i] <= '9')
{
str2[j]=str1[i] ;
j++ ;
}
}
if(str1[k-1]<'0'||str1[k-1]>'9')
str2[j]='*' ;
printf("%s\n", str2) ;
return 0 ;
}