2016-03-23 4 views
-1

У меня есть строка String str = "мой возраст, сколько мне лет, сколько вам лет?";C++: извлечение строки из двух символов

И я хочу извлечь только строку «сколько вам лет» и поместить ее в другую переменную.

Как это сделать?

+3

Возможный дубликат [Как получить часть строки на C++?] (Http://stackoverflow.com/questions/2498119/how-do-i-get-a-part-of-the- a-string-in-c) –

+0

'str.Substring (0, str.Length - 2)'? – CompuChip

ответ

1

Вы можете использовать метод подстроки: http://www.cplusplus.com/reference/string/string/substr/

int first = str.find('?') 
String ageStr = str.substr(first, str.find('?', first) - first); 

Таким образом, вы выбираете часть строки между позицией первого знака вопроса, и позиция второго знака вопроса ...

0
#include <string> 
#include <iostream> 
using namespace std; 
string GetStringInBetween(string Src,string FirstTag, string Secondag) 
{ 
    size_t FirstPos,SecondPos; 
    string newstr=""; 
    FirstPos = Src.find(FirstTag); 
    if (FirstPos != string::npos) 
    { 
     FirstPos++; 
     SecondPos = Src.find(Secondag, FirstPos); 
     if (SecondPos != string::npos) 
     { 
      newstr = Src.substr(FirstPos , SecondPos - FirstPos); 
     } 
    } 
    return newstr; 
} 
int main() 
{ 

    string str = "?how old are you?"; 
    string nstr = GetStringInBetween(str, "?", "?"); 
    cout << nstr; 
    return 0; 
} 
0
for(int i=0;i<strlen(str);i++) 
{ 
    if(str[i] != '?') 
    { 
     cout<<str[i]; 
    } 
} 

Вы можете добавить любой символ вашего выбора вместо ?.

+0

Вы должны больше объяснить, что делает этот код. – Aaronepower

Смежные вопросы