如何用c ++中的数字替换字母?

时间:2017-12-09 08:24:19

标签: c++

如果单词的长度严格超过10个字符,让我们考虑一个单词太长。所有太长的单词都应该用特殊的缩写替换。

这个缩写是这样的:我们写下一个单词的第一个和最后一个字母,在它们之间我们写下第一个和最后一个字母之间的字母数。该数字是十进制系统,不包含任何前导零。

例如,“本地化”将拼写为“l10n”,“国际化”将拼写为“i18n”。
输入:
本地化 国际化 输出:
l10n

I18N

2 个答案:

答案 0 :(得分:1)

std::string s;
while (std::cin >> s)
    std::cout << s.at(0) << s.length() - 2 << s.at(s.length() - 1) << "\n";

答案 1 :(得分:0)

您可以测试此代码:

#include <iostream>

using namespace std;

int main() {
    string str;
    while(getline(cin, str)) {
        if(str.length() == 0)
            break;
        if(str.length() >= 10)
            cout << str[0] << str.length() - 2 << str[str.length() - 1] << endl;
        else
            cout << str << endl;
    }
    return 0;
}