2010-07-11 17 views
38

簡單問題(用C++):將單個字符轉換爲字符串?

如何將字符轉換爲字符串。 因此,例如我有一個字符串str =「abc」;

我想提取第一個字母,但我希望它是一個字符串 而不是一個字符。

我試圖

string firstLetter = str[0] + ""; 

string firstLetter = & str[0]; 

無論是作品。想法?

+1

這將是很好的瞭解你所使用的編程語言。 – Rab 2010-07-11 09:41:10

回答

54

關閉我的頭頂,如果你使用STL然後做到這一點:

string firstLetter(1,str[0]); 
+0

我用過這個,它的工作原理,謝謝! – MLP 2010-07-11 09:59:08

+0

請注意,std :: string不是從STL派生的標準庫的那部分。 – sbi 2010-07-11 11:19:27

+1

添加此註釋以清除語法指示的內容。這基本上說,_ **「我想要一個名爲'firstLetter'的字符串,它從'str'的​​第一個('[0]')元素開始抓取'1'字符。」** _ http:// en .cppreference.com/w/cpp/string/basic_string/basic_string – 2017-06-24 04:24:30

18

可以使用std::string(size_t , char)構造:

string firstletter(1, str[0]); 

或者你可以使用string::substr()

string firstletter2(str.substr(0, 1)); 
+2

+1:最簡單最好的方法 – rubenvb 2010-07-11 10:56:46

2

string firstletter(str.begin(),str.begin()+ 1);

5

1)使用std::stringstream

std::string str="abc",r; 
    std::stringstream s; 
    s<<str[0]; 
    s>>r; 
    std::cout<<r; 

2)使用string (size_t n, char c);constructor

std::string str="abc"; 
    string r(1, str[0]); 

3)使用substr()

string r(str.substr(0, 1)); 
+0

,那麼行爲是不確定的。同樣,這也可以工作:'string r(&str [0],1);'或'string r(str.c_str(),1);' – 2016-10-20 19:44:33

3

使用string::substr

在下面的例子中,f將是在foo(換句話說,第一個字符)的偏移0後面包含1個字符的字符串。

string foo = "foo"; 
string f = foo.substr(0, 1); 

cout << foo << endl; // "foo" 
cout << f << endl; // "f" 
3
char characterVariable = 'z'; 
string cToS(1, characterVariable); 

//cToS is now a string with the value of "z" 
2
string s; 
char a='c'; 
s+=a; //now s is "c" 

char a='c'; 
string s(a); //now s is "c" 
+0

這段代碼有錯嗎? – 2015-11-18 02:01:25

+0

我想我的解決方案是正確的,不知道爲什麼我得到-1。 – 2015-11-18 02:03:11

+0

它爲我工作,因此我想知道相同。 – 2015-11-18 02:10:41