首页 > 代码库 > 单词缩写

单词缩写

Problem Description

我们经常用一串短的字母代替一些长的单词。如ACM是Association for Computing Machinery的缩写。现在你用取首字母的办法得到一串单词的缩写。取首字母的办法是指把每个单词的首字母取出来用大写字母表示,然后把这些大写字母拼起来。但是也有些情况是例外的:一些情况在产生缩写是会被忽略,这些特殊情况见下面的规则:
1.常用的单词:and,for,the.
2.单词长度少于3的单词,如:a,of,to.
你现在的任务就是把给你的字符串用取首字母的办法得到它们的缩写。

Input

第一行是一个正整数T,表示测试用例数。每组测试用例包含一个长度小于100的字符串。这些单词只包含字母表中的字母。单词之间有一个空格。每行字符串的首尾没有空格。

Output

输出每组测试用例字符串的缩写。

Sample Input

5
Association for Computing Machinery
Institute of Electrical and Electronics Engineers
SUN YAT SEN UNIVERSITY
The Lord of the Rings
netease

Sample Output

ACM
IEEE
SYSU
LR
N

#include<stdio.h>
#include <string.h>
int main()
{
	int t,i,j,len,k;
	char a[200],c[200];
	scanf("%d",&t);
	getchar();
	   while(t--)
	   {
		    gets(a);
            len=strlen(a);
			i=0;  k=0;
			while(i<len)
			{
				j=0;
				while(a[i]==' ') i++;
				while(a[i]!=' '&&a[i])
				{
					c[j]=a[i];
					i++; j++;

				}
				c[j]='\0'; k=strlen(c);
				strupr(c);   //  转换大写字符串   ,需要VC编译器提交   头文件  string.h
                if(!(k<3||strcasecmp("AND",c)==0||strcmp("FOR",c)==0||strcmp("THE",c)==0))
                    {
                         putchar(c[0]);
                    }
                /*
                c[j]='\0'; k=strlen(c);   //strcasecmp 不分大小写比较   头文件  string.h
                if(!(k<3||strcasecmp("AND",c)==0||strcasecmp("FOR",c)==0||strcasecmp("THE",c)==0))
                    {
                         putchar(toupper(c[0]));
                    }
                */
			}
		printf("\n");
	}
 return 0;
}


单词缩写