C ++, как извлечь первый и остаток строки? - PullRequest
2 голосов
/ 14 июня 2011

Предположим, у меня есть фрагмент строки "abcd". Я хотел бы, чтобы функция получала char 'a' из "abcd", а другая функция для получения "bcd" из "abcd"..

Ответы [ 3 ]

7 голосов
/ 14 июня 2011

Если вы используете std::string, вы хотите:

str[0] // for the first char
str.substr(1) // for the rest of string

Если вы используете стандартные строки C char*, вам нужно:

str[0] // for the first char

((char*)str+1) // or
&str[1]        // for the rest of string

Когдаиспользуя первый метод, убедитесь, что вы перехватываете out_of_range исключений или проверяете длину строки перед его вызовом.

1 голос
/ 14 июня 2011

Отредактировано: я понимаю, что раньше приводил пример C ++. NET.

Вам нужен метод substr.Если у вас есть строка s, содержащая «abcd», выполнение s.substr(0,1) даст вам строку, содержащую «a», а s.substr(1,3) даст вам строку, содержащую «bcd».

0 голосов
/ 14 июня 2011
TCHAR s[] = _T("abcd");

// Get 'a'
TCHAR c = s[0];

// Get "bcd"
TCHAR *p = s + 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...