第14行的判断不要忘记。否则当输入的字符串,最后一个字符是数字的时候,

第15行会变成printf("%c",strlen(str)。

然后就会出现点对比的时候一致,但是无法通过的问题。见下图。

alt

#include<stdio.h>
#include<string.h>
int main(){
    char str[101]={'\0'};
    while(scanf("%s",str)>0){
        for(int i=0;i<strlen(str);i++){
            if(str[i]>='0'&&str[i]<='9'){
                printf("*");
                while(str[i]>='0'&&str[i]<='9'){
                printf("%c",str[i]); 
                    i++;
                }
                printf("*");
                if(i<strlen(str))
                    printf("%c",str[i]);
            }
            else printf("%c",str[i]);
        }
     printf("\n");
     return 0;
    }
 }