题解 | #表示数字#

表示数字

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;
}

全部评论

相关推荐

咪咪虫:小厂神人多,我昨天早上那个深圳500-1000人的厂,面试官迟到10分钟进来第一句话是:居然是个妹子,然后一直说自己没有准备什么的,全程八股都是支支吾吾的问。下午那个线下的广州280人的厂,二轮技术面一直在问我数据结构、操作系统、计算机网络,还问我高考多少分、为什么不上课、为什么住在学校外面、是什么时候高考的。。。脸上就是质疑和不屑,俩个体验感奇差
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-07 00:20
ANONYMOUS0...:双9硕,大模型算法,总包1700w-2000w 刀了。 很有诚意,无签字费。已接。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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