C语言实验--保留整数

问题描述
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2中,所有数字字符也必须依次存入str2中.输出str2.
输入
输入为一行字符串str1,其中可能包含空格.字符串长度不超过80个字符.
输出量
输出处理好的字符串str2.
样本输入
$Ts!47&s456 a23 +B9k
样本输出

  • 47* 456* 23*9 *

A:

#include
#include
#include
int main()
{

int i,q,w;
char a2[81],a1[81];
gets(a1);
q=strlen(a1);
w=0;
for(i=0;i='0'&&a1[i]<='9')
            a2[i]=a1[i];
     else
        a2[i]='*';
}
for(i=0;i='0'&&a2[i]<='9')
        {
            printf("%c",a2[i]);
            w=0;
        }
}
printf("\n");
return 0;

}

B:

#include
#include
#include
int main()
{

char str1[100];
char str2[100];
int n;
int i;
int jin=0;
memset(str2,0,sizeof(str2));
gets(str1);
n=strlen(str1);
if(str1[0]>='0'&&str1[0]<='9')//先让第一个字符进栈,以便后面进行比较
    str2[jin++]=str1[0];
else
    str2[jin++]='*';
for(i=1;i='0'&&str1[i]<='9')//步骤(1)
        str2[jin++]=str1[i];
    else
    {
        if(str2[jin-1]!='*')//步骤(2)
            str2[jin++]='*';
    }
}
for(i=0;i

}

你可能感兴趣的:(C语言实验--保留整数)