簡單問題(用C++):將單個字符轉換爲字符串?
如何將字符轉換爲字符串。 因此,例如我有一個字符串str =「abc」;
我想提取第一個字母,但我希望它是一個字符串 而不是一個字符。
我試圖
string firstLetter = str[0] + "";
和
string firstLetter = & str[0];
無論是作品。想法?
簡單問題(用C++):將單個字符轉換爲字符串?
如何將字符轉換爲字符串。 因此,例如我有一個字符串str =「abc」;
我想提取第一個字母,但我希望它是一個字符串 而不是一個字符。
我試圖
string firstLetter = str[0] + "";
和
string firstLetter = & str[0];
無論是作品。想法?
關閉我的頭頂,如果你使用STL然後做到這一點:
string firstLetter(1,str[0]);
可以使用std::string(size_t , char)
構造:
string firstletter(1, str[0]);
或者你可以使用string::substr()
:
string firstletter2(str.substr(0, 1));
+1:最簡單最好的方法 – rubenvb 2010-07-11 10:56:46
string firstletter(str.begin(),str.begin()+ 1);
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));
,那麼行爲是不確定的。同樣,這也可以工作:'string r(&str [0],1);'或'string r(str.c_str(),1);' – 2016-10-20 19:44:33
使用string::substr
。
在下面的例子中,f
將是在foo
(換句話說,第一個字符)的偏移0後面包含1個字符的字符串。
string foo = "foo";
string f = foo.substr(0, 1);
cout << foo << endl; // "foo"
cout << f << endl; // "f"
char characterVariable = 'z';
string cToS(1, characterVariable);
//cToS is now a string with the value of "z"
string s;
char a='c';
s+=a; //now s is "c"
或
char a='c';
string s(a); //now s is "c"
這段代碼有錯嗎? – 2015-11-18 02:01:25
我想我的解決方案是正確的,不知道爲什麼我得到-1。 – 2015-11-18 02:03:11
它爲我工作,因此我想知道相同。 – 2015-11-18 02:10:41
這將是很好的瞭解你所使用的編程語言。 – Rab 2010-07-11 09:41:10