C++ 如何通过以特定字符结尾来控制子字符串长度?

C++ 如何通过以特定字符结尾来控制子字符串长度?,c++,substring,C++,Substring,我有一个字符串“s”,我希望通过从begging(位置0)开始获得子字符串,并在空格处结束-因此,如果有人输入他们的全名,我可以确定他们的名字 我可以发誓它们是一个子字符串函数,可以“搜索”直到找到某个字符。提前谢谢 像这样的方法会奏效: #include <string> #include <iostream> int main() { std::string str = "Person Name"; size_t pos = str.find(" "

我有一个字符串“s”,我希望通过从begging(位置0)开始获得子字符串,并在空格处结束-因此,如果有人输入他们的全名,我可以确定他们的名字


我可以发誓它们是一个子字符串函数,可以“搜索”直到找到某个字符。提前谢谢

像这样的方法会奏效:

#include <string>
#include <iostream>

int main() {
    std::string str = "Person Name";
    size_t pos = str.find(" ");
    std::cout << str.substr(0,pos);
}
#包括
#包括
int main(){
std::string str=“人名”;
大小\u t pos=str.find(“”);

std::cout像这样的东西会起作用:

#include <string>
#include <iostream>

int main() {
    std::string str = "Person Name";
    size_t pos = str.find(" ");
    std::cout << str.substr(0,pos);
}
#包括
#包括
int main(){
std::string str=“人名”;
大小\u t pos=str.find(“”);

std::cout根据其中的内容,您可能会发现将其放入stringstream并像使用输入一样从中提取更容易。根据其中的内容,您可能会发现将其放入stringstream并像使用输入一样从中提取更容易。好处是您不必检查
npos
在这种情况下,
substr
的第二个参数默认值就是这个。@chris是的,我假设名称之间始终有空格。但即使没有,它也会打印整个字符串:)酷,谢谢!现在,如果我想从一个特定字符开始,然后转到另一个特定字符呢?@Douko你是说在字符串中循环?在这种情况下,你不必检查
npos
,因为这是
substr
的第二个参数的默认值。@chris是的,我假设名称之间始终有空格。但即使没有,它也会打印整个字符串:)酷,thanks!现在,如果我想从一个特定的字符开始,然后转到另一个特定的字符呢?@Douko你是说在字符串中循环?