2010-07-11 65 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