2013-05-31 14 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; 
} 

XCode में संकलित नाम है, लेकिन doesn `t'std :: स्ट्रिंग' 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' 
+1

हमें भी कोड दिखाएं, कृपया –

+4

स्ट्रिंग :: फ्रंट C++ 11 में पेश किया गया है। क्या दोनों संकलक सी ++ 11 के अनुरूप हैं? –

+1

शायद वह वेबसाइट एक गैर-अनुपालन संकलक का उपयोग करती है। –

उत्तर

10

एक बात है कि string::front और std::to_string सी के बाद से शुरुआत की है ++ 11। आपको यह सुनिश्चित करना होगा कि आप उन कंपाइलर का उपयोग कर रहे हैं जो उन नई सुविधाओं का समर्थन करते हैं।

+0

thanx! – driver733

+0

@ user2441104 आपका स्वागत है। उम्मीद है कि यह मदद करता है। आप एसओ में अन्य पोस्ट पा सकते हैं जो सी ++ 11 का समर्थन करने के लिए एक्सकोड से संबंधित हैं। – taocp

5

string::front सी ++ 11 में पेश किया गया था। मैक पर सुनिश्चित करें कि आप क्लैंग का उपयोग कर रहे हैं, क्योंकि g ++ ओएसएक्स पर अपडेट नहीं है, और कमांड लाइन विकल्प clang++ -std=c++11 your_program.cpp का उपयोग करें। आपको विकल्प -stdlib=libc++

+0

आप मैक पर जीसीसी के कम प्राचीन संस्करण भी स्थापित कर सकते हैं। – juanchopanza

+0

@juanchopanza लेकिन अगर उसके पास एक्सकोड स्थापित करने का सबसे वर्तमान संस्करण है तो उसे क्लैंग 3.1 होने की गारंटी है मुझे लगता है कि – aaronman

+0

यह सच है। लेकिन मैं सिर्फ सवाल फिर से पढ़ता हूं और ऐसा लगता है कि एक्सकोड के साथ सब कुछ ठीक है। – juanchopanza

संबंधित मुद्दे