词组缩写(isalpha()的应用)

Problem Description定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。

比如,C语言里常用的EOF就是end of file的缩写。

Input输入的第一行是一个整数T,表示一共有T组测试数据;

接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;

单词长度不超过10,由一个或多个空格分隔这些单词。

Output请为每组测试数据输出规定的缩写,每组输出占一行。

Sample Input1 end of file

Sample OutputEOF

本题要考虑的情况:asd asdasd asd asd

1 #include <stdio.h>
 2 #include <math.h>
 3 #include <queue>
 4 #include <vector>
 5 #include <stack>
 6 #include <map>
 7 #include <string>
 8 #include <string.h>
 9 #include <algorithm>
10 #include <iostream>
11 using namespace std;
12 char str[1000],s[1000];
13 int main( )
14 {
15     int t;
16     scanf( "%d%*c",&t );
17     while( t-- )
18     {
19            gets( str );
20            int i = 0,c = 0;
21            while( str[i] )
22            {
23                   if( !isalpha( str[i] ) )//如果输入字符是一个英文字母,即 a-z或A-Z,返回非零值(具体返回多少要看系统实现),否则返回0.
24                   {
25                       ++i;
26                       continue;
27                   }
28                   if( str[i] > 'Z' )
29                       str[i] -= 32;
30                   s[c++] = str[i];
31                   while( isalpha( str[i] ) )
32                          ++i;
33                   }
34              s[c] = 0;
35            puts( s );
36            }
37     return 0;
38 }

分解:

1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 char a[120],b[120];
 5 int main()
 6 {
 7     int T;
 8     int i;
 9     int len=0;
10     int k;
11     scanf("%d",&T);
12     getchar();
13     while(T--)
14     {
15         gets(a);
16         len=strlen(a);
17         strupr(a);
18         k=0;
19         for(i=0;i<len;i++)
20         {
21             if(i==0)
22             {
23                 if(a[i]==' ' && a[i+1]!=' ')
24                      b[k++]=a[i+1];
25                 else if(a[i]!=' ')
26                     b[k++]=a[i];
27             }
28             else 
29             {
30                 if(a[i]==' ' && a[i+1])
31                     b[k++]=a[i+1];
32             }
33         }
34         for(i=0;i<k;i++)
35         {
36             if(b[i]!=' ')
37                 printf("%c",b[i]);
38         }
39         printf("\n");
40     }
41     return 0;
42 }

原文链接: https://www.cnblogs.com/wangmengmeng/p/4714966.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/220370

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 上午10:53
下一篇 2023年2月13日 上午10:53

相关推荐