题解 | #表示数字#

表示数字

http://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

求助!!!有没有大佬帮忙解释一下这是咋回事?点对比一样,就是过不了。代码如下: 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'){
                char num[50]={'\0'};
                int p=0;
                while(str[i]>='0'&&str[i]<='9'){
                    num[p]=str[i];
                    p++;
                    i++;
                }
                printf("*%s*",num);
                printf("%c",str[i]);
            }
            else printf("%c",str[i]);
        }
    }
     printf("\n");
    return 0;
}
全部评论
我知道了!!! 问题出在第16行。 如果字符串的最后一个字符是数字,当i=strlen(str)-1,从第10行运行到第13行后,i=strlen(str),那么第16行就要输出‘\0’. 所以,第16行,应该加个判断 i
点赞 回复 分享
发布于 2022-05-09 23:39

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务