#c
#c
Вопрос:
В данный момент я изучаю c и хочу создать код, в котором пользователь вводит комбинацию из двух слов для обработки. Например, пользователь вводит «echo something«, и код видит, что там есть «эхо«, тогда это эхо будет разделено, а остальное будет напечатано на экране. На данный момент я здесь:
if (income.find("read ") != string::npos){
...
//here I need some help!
...
}
Кто-нибудь может мне помочь, пожалуйста. Спасибо!
Комментарии:
Ответ №1:
Вы можете обратиться к функции-члену substr of std::string
.
В вашем случае,
auto pos = income.find("read ");
if (pos!= string::npos){
std::cout<<income.substr(pos 1);
}
Ответ №2:
Если есть только два слова, вы можете попробовать сохранить их оба по отдельности, и если какое-либо из них равно «echo», пропустите его и выведите другое слово.
std::string p, q ;
std::cin >> p >> q ;
if (p == "echo"){
std::cout << q ;
}
else if(q == "echo"){
std::cout << p ;
}
else std::cout << p << " " << q << "n" ; // if neither of them are equal to "echo" simply print the original sentence
Ответ №3:
Вы можете найти целевое слово и то, что идет после него
std::string target = "read ";
std::string after_target;
auto target_pos = income.find (target);
if (target_pos != std::string::npos)
after_target = str.substr (target_pos target.size ());