C++ 是否将单个字符转换为字符串?
简单问题(C++中): 如何将字符转换为字符串。 例如,我有一个字符串str=“abc” 我想提取第一个字母,但我希望它是一个字符串 与角色相对的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] + ""; 及 两者都
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];