Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
- 输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2
中。输出str2。
Input
- 输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。
Output
- 输出处理好的字符串str2。
Sample Input
$Ts!47&*s456 a23* +B9k
Sample Output
*47*456*23*9*
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[81];
char b[81];
gets(a);
int c=-1;
int t=-1;
int i;
int n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]>=48&&a[i]<=57)
{
if(i==1+c)
b[++t]=a[i];
else if(i!=1+c)
{
b[++t]='*';
b[++t]=a[i];
}
c=i;
}
else
if(i==n-1)
b[++t]='*';
}
for(i=0;i<=t;i++)
{
printf("%c",b[i]);
}
printf("\n");
return 0;
}
思路:通过判断两个数字是否连续确定中间是否加‘*’。