gpt4 book ai didi

c++ - 子字符串给出看似随机的结果,即使其参数看起来正确

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:46 27 4
gpt4 key购买 nike

我的代码应该读入两个或更多作者的名字,用逗号分隔,然后返回第一作者的姓氏。

cout << "INPUT AUTHOR: " << endl ;
getline(cin, authors, '\n') ;

int AuthorCommaLocation = authors.find(",",0) ;
int AuthorBlankLocation = authors.rfind(" ", AuthorCommaLocation) ;

string AuthorLast = authors.substr(AuthorBlankLocation+1, AuthorCommaLocation-1) ;
cout << AuthorLast << endl ;

但是,当我尝试检索 AuthorLast 子字符串时,它返回的文本太长,从三到一个字符不等。对我的错误有任何见解吗?

最佳答案

C++ substr 方法不接受开始和结束位置。相反,它需要一个起始位置和一些要读取的字符。因此,您传入的参数告诉 substr 从位置 AuthorBlankLocation + 1 开始,然后从 AuthorCommaLocation - 1 读取字符那个向前的点,这可能是太多的字符。

如果要指定开始和结束位置,可以使用 string 构造函数的迭代器版本:

string AuthorLast(authors.begin() + (AuthorBlankLocation + 1),
authors.begin() + (AuthorCommaLocation - 1));

希望这对您有所帮助!

关于c++ - 子字符串给出看似随机的结果,即使其参数看起来正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14617700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com