单词缩写

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

时间: 2024-10-06 00:22:24

单词缩写的相关文章

单词缩写(abbr.cpp)每日一题

题目描述:YXY 发现好多计算机中的单词都是缩写,如 GDB,它是全称 Gnu DeBug 的缩写.但是,有时缩写对应的全称并不固定,如缩写 LINUX,可以理解为:(1)LINus's UniX (2)LINUs's miniX (3)Linux Is Not UniX现在 YXY 给出一个单词缩写,以及一个固定的全称(由若干个单词组成,用空格分隔).全称中可能会有无效的单词,需要忽略掉,一个合法缩写要求每个有效的单词中至少有一个字符出现在缩写中,缩写必须按顺序出现在全称中.对于给定的缩写和一

[LeetCode] Valid Word Abbreviation 验证单词缩写

Given a non-empty string s and an abbreviation abbr, return whether the string matches with the given abbreviation. A string such as "word" contains only the following valid abbreviations: ["word", "1ord", "w1rd", &

[LeetCode] 288.Unique Word Abbreviation 独特的单词缩写

An abbreviation of a word follows the form <first letter><number><last letter>. Below are some examples of word abbreviations: a) it --> it (no abbreviation) 1 b) d|o|g --> d1g 1 1 1 1---5----0----5--8 c) i|nternationalizatio|n --&

[LeetCode] 527. Word Abbreviation 单词缩写

Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations for every word following rules below. Begin with the first character and then the number of characters abbreviated, which followed by the last charact

HDOJ/HDU 2564 词组缩写(单词缩写)

Problem Description 定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写. 比如,C语言里常用的EOF就是end of file的缩写. Input 输入的第一行是一个整数T,表示一共有T组测试数据: 接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成:每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成: 单词长度不超过10,由一个或多个空格分隔这些单词. Output 请为每组测试数据输出规定的缩写,每组输出占一行. Sam

【dll】关于__declspec的简记,由两个单词缩写而来!(转)

关于declspec的一点说明 我遇到这个单词总觉得记不住,时间一长就忘了.今天在复习dll的时候又遇到了这个单词,我感觉应该是两个单词的缩写,但又不敢确定,特地发帖网上求助,得到两位高手的帮助.下面是答案. The __declspec keyword must prefix the declaration specification 简单的可以理解为“声明规范”. 给出解答的可是位高手,CSDN积分排名第7名,奖章一大堆,呵呵,见着高手了. 原文转自 http://blog.csdn.net

Linux 常见的单词缩写

命令缩写:ls:list(列出目录内容)cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat package manager 红帽子打包管理器 pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用参数:-auxf ps -auxf 显示进程状态 df: disk free 其功能是显示磁盘可用空间数目信息及空

[LeetCode] Word Abbreviation 单词缩写

Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations for every word following rules below. Begin with the first character and then the number of characters abbreviated, which followed by the last charact

单词缩写集 &#183; word abbreviation set

[抄题]: [暴力解法]: 时间分析: 空间分析: [思维问题]: [一句话思路]: [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: [二刷]: [三刷]: [四刷]: [五刷]: [五分钟肉眼debug的结果]: [总结]: [复杂度]:Time complexity: O() Space complexity: O() [英文数据结构或算法,为什么不用别的数据结构或算法]: [其他解法]: [Follow Up]: [