字符串处理:去除首部空格,去除中间多余空格,在数字和字母中间插入指定字符串...

 1 #include<cstdio>
 2 #include<cstring>
 3 bool isN(char c){//判断该字符是否是数字 
 4     if(c>='0'&&c<='9') return true;
 5     else return false;
 6 }
 7 bool isW(char c){//判断该字符是否是字母 
 8     if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
 9     return true;
10     else return false;
11 }
12 int main(){
13     char c[110];
14     while(gets(c)){
15         int len=strlen(c);
16         char *p=c;
17         while(*p==' '){//去除字符串前面的所有空格 
18             p++;
19         }
20         int k=0;
21         while(*p!='\0'){//将字符串中的多余空格去除,保留一个空格 
22             c[k++]=*p++;
23             while(c[k-1]==' '&& *p==' '){
24                 p++;
25             }
26         }
27         char t,d;
28          for(int i=0;i<k;i++){
29              t=c[i];d=c[i+1];
30              if((isN(t)==true&&isW(d)==true)||(isN(d)==true&&isW(t)==true)){
31                  printf("%c",t);//在字符和数字中间插入相应的字符 
32                  if(i!=k-1){//如果打印的不是最后一个字符,那么久打印指定字符 
33                      printf("_");
34                  }
35              }else{
36                  printf("%c",t);
37              }
38          }
39          printf("\n");
40     }
41     return 0;
42 }

 

转载于:https://www.cnblogs.com/mist2019/p/10409695.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值