题解 | #表示数字#

表示数字

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

相关推荐

我的offer呢😡:这不才9月吗,26到明年毕业前能一直找啊,能拿下提前批,转正的,offer打牌的都是有两把刷子的,为什么非要跟他们比。如果别人是9本硕+金牌+好几段大厂实习呢?如果别人是双非通天代呢?如果别人是速通哥呢?,做好自己就行了,我们做不到他们一样提前杀死比赛,但晚点到终点也没啥关系吧
双非应该如何逆袭?
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务