【发布时间】:2025-11-26 04:55:01
【问题描述】:
因此,当我使用 string str ("A:1,B:1"); 作为主输入的输入运行此函数时,我进入了无限循环,然后是分段错误(核心转储)。
void function (string str)
{
if (!str.empty() || str.at(0) != ',')
{
if (isalpha(str.at(0)))
{
if (str.find(',') != string::npos)
{
write(str.substr (0,str.find(','))); //takes this to another function to write in a file
function (str.substr (str.find(',')+1,str.length()-1));
}
else
{
write(str.substr (0,str.length()));
}
}
}
有没有人能在这里阐明一下? 我怎样才能得到代码来分隔 A:1 和 B:1 并将它们单独发送到 write 函数。我使用的示例很简单,但我将使用更长的字符串行。
【问题讨论】:
-
欢迎来到*。在此处阅读有关如何提问的信息。 *.com/help/asking 特别注意“如何创建一个最小、完整和可验证的示例”
-
您好,谢谢。你能更具体一点吗?我在我的问题中没有提到您希望看到的什么? @JiveDadson
-
“阅读本文”的哪一部分你不明白?
-
你有不平衡的
{ }。一旦修复(根据选项卡),代码似乎可以工作:Demo。 -
@Jarod42 - 这是他最小的问题。当括号关闭时,它会在某些输入上崩溃,一旦修复,它仍然不会按照他的意图进行。
标签: c++ string recursion infinite-loop