将单个字符转换为字符串?

MLP*_*MLP 46 c++ character

简单的问题(在C++中):

如何将字符转换为字符串.所以例如我有一个字符串str ="abc";

我想提取第一个字母,但我希望它是一个字符串而不是一个字符.

我试过了

string firstLetter = str[0] + "";
Run Code Online (Sandbox Code Playgroud)

string firstLetter = & str[0]; 
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.想法?

Sea*_*ean 62

如果您正在使用STL,那么请完成以下任务:

string firstLetter(1,str[0]);
Run Code Online (Sandbox Code Playgroud)

  • 添加此注释以清除语法指示的内容.这基本上说,_**"我想要一个名为`firstLetter`的`string`,它从`str`的​​第一个(`[0]`)元素开始抓取`1`字符."**_ http:// en .cppreference.com/W/CPP /串/ basic_string的/ basic_string的 (5认同)
  • @kayleeFrye_onDeck - 实际上它没有.它说"给我一份给定角色".它不能从`str`的​​第一个元素"启动",因为`str`甚至没有传递,而`str [0]`的字符是通过值传递的.如果您使用2而不是1,您将获得第一个字符的两个副本,_not_前两个字符.这直接来自您的链接,您可以在其中看到构造函数的形式(2),记录为:_2)构造具有字符ch的计数副本的字符串.如果count> = npos._,则行为未定义. (4认同)
  • 请注意,`std::string` 不是源自 STL 的标准库部分。 (2认同)

Mic*_*urr 23

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

string firstletter( 1, str[0]);
Run Code Online (Sandbox Code Playgroud)

或者您可以使用string::substr():

string firstletter2( str.substr(0, 1));
Run Code Online (Sandbox Code Playgroud)


Pra*_*rav 5

1)使用 std::stringstream

  std::string str="abc",r;
  std::stringstream s;
  s<<str[0];
  s>>r;
  std::cout<<r;
Run Code Online (Sandbox Code Playgroud)

2)使用 string ( size_t n, char c ); constructor

  std::string str="abc";
  string r(1, str[0]);
Run Code Online (Sandbox Code Playgroud)

3)使用 substr()

  string r(str.substr(0, 1));
Run Code Online (Sandbox Code Playgroud)