题解 | #表示数字#

表示数字

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

#include <ctype.h>
#include <stdio.h>

int main() 
{
    int a,b,len;
    char str1[300]={'\0'};
    char str2[300]={'\0'};

    gets(str1);
    b=0;
    len=strlen(str1);

    if(isdigit(str1[0]))//首个字母或其他的情况
    {
        str2[0]='*';
        str2[1]=str1[0];
        b=2;
    }
    else {
        str2[0]=str1[0];
        b=1;
         }
    for(a=1;a<len;a++)
    {
        if(isupper(str1[a])||islower(str1[a])||ispunct(str1[a]))    //非数字情况
        {
            if(isdigit(str1[a-1]))
            {
                str2[b]='*';
                b++;
                str2[b]=str1[a];
                b++;
            }
            else 
               {
                 str2[b]=str1[a];
                 b++;
               }
        }
        else if(isdigit(str1[a]))   //数字情况
        {
             if(isdigit(str1[a-1]))
             {
                str2[b]=str1[a];
                b++;
             }
             else
            {
            str2[b]='*';
            b++;
            str2[b]=str1[a];
            b++;
            }
        }
        else 
        {
            str2[b]=str1[a];
            b++;
        }
        if(isdigit(str1[len-1]))//末尾字母或者其他的情况,isdigit不能直接用于==判断
        {
            str2[b]='*';
        }
    }      
    puts(str2);  
    return 0;
}

全部评论

相关推荐

程序员牛肉:小牛肉来也! 基本破不了局了,我给你的建议是适当放弃秋招,投递大厂的日常实习之后赶明年的春招。 在没有实习的情况下,你的项目经历给面试官的作用就是提供提问点方便面试官来提问八股以及场景题而已。因此你现在简历的写法不太对,要着重突出项目中使用的技术点,而不是像你现在这个写的很宽泛。 最好是“基于xxxx技术解决了xxxx问题,解决了xxxx边缘场景问题”。最好是这样写,方便面试官对你的简历进行提问。 最后的最后,问题其实不在你。今年的秋招确实比较寒冬一点,所以找不到是正常的。要做好打持久战的准备。
Java学习交流
点赞 评论 收藏
分享
牛马43239153...:感觉直接找个厂上班还实在点,现在都9月份了,秋招要么是要26届的,要么是要有工作经验的,你这连实习经历都没有,很难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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