gpt4 book ai didi

c++ - 打印字符串的所有子串时出错

转载 作者:行者123 更新时间:2023-11-30 01:48:03 32 4
gpt4 key购买 nike

这是引用 Synxis 的以下回答。

https://codereview.stackexchange.com/questions/18684/find-all-substrings-interview-query-in-c/18715#18715

假设,我必须打印字符串“cbaa”的所有子字符串。为此,我必须像这样调用方法:

findAllSubstrings2("cbaa");

如果我从用户那里获取一个字符串,然后执行以下操作:

string s;
cin>>s;
findAllSubstrings2(s);

它给出了以下错误:

[Error] cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'void findAllSubstrings2(const char*)'

为什么会这样?

最佳答案

正如错误消息所说,当您尝试传递类型为 std 的参数时,函数 findAllSubstrings2 的参数被声明为具有类型 const char *: :字符串

string s;
//...
findAllSubstrings2(s);

您应该使用 std::string 类的成员函数 c_strdata(从 C++ 11 开始)。例如

findAllSubstrings2(s.c_str());

关于c++ - 打印字符串的所有子串时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728087/

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