简单问题(用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