Преобразовать один символ в строку? - PullRequest
46 голосов
/ 11 июля 2010

Простой вопрос (на C ++):

Как преобразовать символ в строку.Например, у меня есть строка str = "abc";

И я хочу извлечь первую букву, но я хочу, чтобы это была строка, а не символ.

Я пытался

string firstLetter = str[0] + "";

и

string firstLetter = & str[0]; 

Ни одна из них не работает.Идеи?

Ответы [ 7 ]

60 голосов
/ 11 июля 2010

С макушки головы, если вы используете STL, сделайте следующее:

string firstLetter(1,str[0]);
23 голосов
/ 11 июля 2010

Вы можете использовать конструктор std::string(size_t , char ):

string firstletter( 1, str[0]);

или вы можете использовать string::substr():

string firstletter2( str.substr(0, 1));
5 голосов
/ 11 июля 2010

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));
3 голосов
/ 24 октября 2014
char characterVariable = 'z';
string cToS(1, characterVariable);

//cToS is now a string with the value of "z"
3 голосов
/ 11 июля 2010

Использовать string::substr.

В следующем примере f будет строкой, содержащей 1 символ после смещения 0 в foo (другими словами, первый символ).1007 *

2 голосов
/ 02 ноября 2014
string s;
char a='c';
s+=a; //now s is "c"

или

char a='c';
string s(a); //now s is "c"
2 голосов
/ 11 июля 2010

строка первого письма (str.begin (), str.begin () + 1);

...