2013-03-26 2 views
2

Имея строку HelloHello как я могу извлечь (т. Е. Опустить) первый символ, чтобы иметь elloHello?извлечение char из строки

Я подумал о .at() и string[n], но они возвращают значение и не удалить его из строки

+1

Какой тип ваша строка? char * или std :: string? – emsr

ответ

7
#include <iostream> 
#include <string> 

int main(int,char**) 
{ 
    std::string x = "HelloHello"; 
    x.erase(x.begin()); 
    std::cout << x << "\n"; 
    return 0; 
} 

отпечатки

elloHello 
+0

Что это за оператор: ::? –

+1

@SaraKholusi: Это оператор разрешения области. –

3

Использование erase

std::string str ("HelloHello"); 

str.erase (0,1); // Removes 1 characters starting at 0. 

// ... or 

str.erase(str.begin()); 
3

Вы должны использовать подстроку. Первый параметр указывает начальную позицию. Второй параметр string::npos означает, что новая строка должна содержать все символы из указанной начальной позиции до конца строки.

std::string shorterString = hellohello.substr(1, std::string::npos); 

http://www.cplusplus.com/reference/string/string/substr/