2013-05-31 26 views
5
#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; 
} 

biên dịch trong XCode, nhưng doesn `t trên codeforces.ru/'std :: string' không có thành viên mang tên 'trước'

с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' 
+1

hiển thị mã cho chúng tôi, vui lòng –

+4

chuỗi :: mặt trước được giới thiệu trong C++ 11. Cả hai trình biên dịch đều tuân thủ C++ 11? –

+1

Có lẽ trang web đó sử dụng trình biên dịch không tuân thủ. –

Trả lời

10

Một điều là string::frontstd::to_string được giới thiệu từ năm C++ 11. Bạn phải đảm bảo rằng bạn đang sử dụng trình biên dịch hỗ trợ các tính năng mới này.

+0

thanx cho câu trả lời! – driver733

+0

@ user2441104 Bạn được chào đón. Hy vọng rằng nó sẽ giúp. Bạn có thể tìm các bài viết khác trong SO đề cập đến XCode để hỗ trợ C++ 11. – taocp

5

string::front được giới thiệu trong C++ 11. Trên máy mac đảm bảo bạn đang sử dụng tiếng kêu, vì g ++ không được cập nhật trên osx và sử dụng tùy chọn dòng lệnh clang++ -std=c++11 your_program.cpp. Bạn cũng có thể cần sử dụng tùy chọn -stdlib=libc++

+0

Bạn cũng có thể cài đặt ít phiên bản gcc cổ hơn trên mac. – juanchopanza

+0

@juanchopanza Nhưng nếu anh ấy có phiên bản mới nhất của xcode được cài đặt, anh ấy được đảm bảo có tiếng kêu 3.1 tôi nghĩ rằng – aaronman

+0

Đúng vậy. Nhưng tôi chỉ đọc lại câu hỏi và dường như mọi thứ đã OK với XCode. – juanchopanza

Các vấn đề liên quan