题目
翻译
题目
有时一些单词如“localization”或者“internationalization”实在是太长了以至于要在一个文本里多次写下他们实在太累了。
这样我们认为如果一个单词其长度大于10个字符,那么它就太长了。所有太长的单词应该用特殊的缩写来代替。
这个缩写是这样的:我们写下这个单词的首字母和最后一个字母,并在它们之间写下它们两之间的字母总数。这个数字是十进制数并且不包括任何前导零。
因此,“localization”会被拼写成“l10n”,以及“internationalization”会被拼接成“i18n”。
建议你将单词转化为缩写这个过程自动化,所有太长的单词都应被缩写替代,而不太长的单词不需要做任何改变。
输入
第一行为一个整数n(1 ≤ n ≤ 100)。接下来的n行中每行包含一个单词。所有单词均为小写的拉丁字母组成,并且长度为1到100个字符。
输出
输出n行,第i行为第i个输入的数据的替换结果。
分析
判断字符串长度是否大于10,再根据判断结果选择输出第一个字母+字符串长度-2+最后一个字母,或输出原单词。
代码
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
int n;
cin >> n;
char s[101];
for (int i = 0; i < n; i++)
{
cin >> s;
if (strlen(s) > 10)
cout << s[0] << (strlen(s) - 2) << s[strlen(s) - 1] << endl;
else
cout << s << endl;
}
return 0;
}