Как отделить часть строки в c ?

#c

#c

Вопрос:

В данный момент я изучаю c и хочу создать код, в котором пользователь вводит комбинацию из двух слов для обработки. Например, пользователь вводит «echo something«, и код видит, что там есть «эхо«, тогда это эхо будет разделено, а остальное будет напечатано на экране. На данный момент я здесь:

 if (income.find("read ") != string::npos){
...
//here I need some help!
...
}
  

Кто-нибудь может мне помочь, пожалуйста. Спасибо!

Комментарии:

1. en.cppreference.com/w/cpp/string/basic_string/substr

Ответ №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 ());