C++ 是否将单个字符转换为字符串?

C++ 是否将单个字符转换为字符串?,c++,character,C++,Character,简单问题(C++中): 如何将字符转换为字符串。 例如,我有一个字符串str=“abc” 我想提取第一个字母,但我希望它是一个字符串 与角色相对的 string foo = "foo"; string f = foo.substr(0, 1); cout << foo << endl; // "foo" cout << f << endl; // "f" 我试过了 string firstLetter = str[0] + ""; 及 两者都

简单问题(C++中):

如何将字符转换为字符串。 例如,我有一个字符串str=“abc”

我想提取第一个字母,但我希望它是一个字符串 与角色相对的

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

cout << foo << endl; // "foo"
cout << f << endl; // "f"
我试过了

string firstLetter = str[0] + "";


两者都不起作用。想法?

您可以使用
std::string(size\t,char)
构造函数:

string firstletter( 1, str[0]);
或者您可以使用
string::substr()


如果您正在使用STL,请在我的头顶上执行以下操作:

string firstLetter(1,str[0]);
字符串第一个字母(str.begin(),str.begin()+1)

1)使用

3) 使用


使用
string::substr

在下面的示例中,
f
将是
foo
中偏移量0后包含1个字符的字符串(换句话说,第一个字符)

string foo=“foo”;
字符串f=foo.substr(0,1);
库特
或

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

你可以试试这个它很管用

string s="hello";

string s1="";

s1=s1+s[0];

如果要返回字符串,下面给出了两种方法:

1.`return(string)“+S[i]


2.
string s.push_back(originals[k];return s;

注意,
std::string
不是从STL派生的标准库部分。添加此注释以澄清语法指示。这基本上是说,“我想要一个名为
firstLetter
字符串,它从
str
的第一个(
[0]
)元素开始抓取
1
字符。”@kayleeFrye\u onDeck-实际上它没有。它说“给我一个给定字符的副本”。它不能“开始”“从
str
的第一个元素开始,因为
str
甚至没有传递,而
str[0]
处的字符是按值传递的。如果使用2而不是1,则会得到第一个字符的两个副本,而不是前两个字符。这是直接从链接中可以看到它的形式(2)构造函数的,记录为:2)使用字符ch的count副本构造字符串。如果count>=npos,则行为未定义。我认为我的解决方案是正确的,不知道为什么我得到了-1。
std::string
没有一个构造函数本身接受单个
char
作为输入,因此
string s(a)将不起作用。然而,
字符串s(1,a)
字符串s(&a,1)将起作用。此外,这也将起作用:
字符串r(&str[0],1)
字符串r(str.c_str(),1)的子集(这是一种特殊情况,其中字符来自现有的std::string),这是否回答了您的问题?
  std::string str="abc";
  string r(1, str[0]);
  string r(str.substr(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"
string s="hello";

string s1="";

s1=s1+s[0];