码迷,mamicode.com
首页 > 其他好文 > 详细

对字符串处理的思想

时间:2020-03-10 21:55:38      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:特殊情况   string   har   ++   个数   标记   ems   特殊   方式   

题目:

将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变

示例1

输入

Jkdi234klowe90a3

输出

Jkdi*234*klowe*90*a*3*

 

代码:

#include <cstdio>
#include <cstring>
/*
主要是对特殊情况的处理,比如:
1.第一个或最后一个为数字的情况
2.只有一个数字,周边都是字母的情况
而采用标记的方式,则很好的之后了数字的位置,以及数字周边的情况
*/
int main(){
    int i, cnt[107];
    char s[105];
    while(scanf("%s", s) != EOF){
        memset(cnt, 0, sizeof(cnt));
        for(i=0; i<strlen(s); i++){
            if(s[i]>=0 && s[i]<=9) cnt[i]=1;
        }
        if(s[0]>=0 && s[0]<=9) printf("*");
        for(i=0; i<strlen(s); i++){
            if(i>0 && cnt[i]-cnt[i-1]==1){
                printf("*%c", s[i]);
                if(i+1<strlen(s) && cnt[i]-cnt[i+1]==1) printf("*");
            }else if(i+1<strlen(s) && cnt[i]-cnt[i+1]==1) printf("%c*", s[i]);
            else printf("%c", s[i]);
        }
        if(s[strlen(s)-1]>=0 && s[strlen(s)-1]<=9) printf("*");
        printf("\n");
    }
    return 0;
}

 




对字符串处理的思想

标签:特殊情况   string   har   ++   个数   标记   ems   特殊   方式   

原文地址:https://www.cnblogs.com/heyour/p/12458489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!