直接循环会运行超时,发现不一定只有大小写字母,可能有其他其他情况,这里没有注意到
#include<stdio.h>
#include<string.h>
int main(){
char str[1005];
while(scanf("%s",str)!=EOF){
for(int i=0;i<strlen(str);){
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){
printf("%c",str[i]);
i++;
}else if(str[i]>='0'&&str[i]<='9'){
printf("*");
while(str[i]>='0'&&str[i]<='9'){
printf("%c",str[i]);
i++;
}
printf("*");
}
}
printf("\n");
}
return 0;
} 正确程序,修改一下if和else的条件就可以了:
#include<stdio.h>
#include<string.h>
int main(){
char str[10005];
while(scanf("%s",str)!=EOF){
for(int i=0;i<strlen(str);){
if(str[i]>='0'&&str[i]<='9'){
printf("*");
while(str[i]>='0'&&str[i]<='9'){
printf("%c",str[i]);
i++;
}
printf("*");
}else{
printf("%c",str[i]);
i++;
}
}
printf("\n");
}
return 0;
}
京公网安备 11010502036488号