6
#include <string>
#include <algorithm>
#include <iostream>

int main()
{
    string str;
    string str1;
    int h = 0;
    cin >> str;
    if (str.length() > 10)
    {
        str1 += str.front();
        h = str.length() - 2;
        string s = to_string(h);
        str1 += s;
        str1 += str.back();
        cout << str1;
    }
    else cout << str;
    return 0;
}

在 XCode 中编译,但在 codeforces.ru/ 上没有

 сan't compile program.cpp:
program.cpp: In function 'int main()':
program.cpp:23:21: error: 'std::string' has no member named 'front'
program.cpp:27:29: error: 'to_string' was not declared in this scope
program.cpp:32:21: error: 'std::string' has no member named 'back'
4

2 回答 2

11

一件事是自 C++11 以来引入的string::frontstd::to_string您必须确保您使用的编译器支持这些新功能。

于 2013-05-31T16:12:12.433 回答
5

string::front在 c++11 中引入。在 Mac 上确保您使用的是 clang,因为 g++ 在 osx 上没有更新,并使用命令行选项clang++ -std=c++11 your_program.cpp。您可能还需要使用该选项-stdlib=libc++

于 2013-05-31T16:16:18.640 回答