C++ 当我使用它时,它显示分段转储错误

C++ 当我使用它时,它显示分段转储错误,c++,C++,当我尝试替换每个命令时,该函数是否存在某种问题,但它仍然显示分段错误 string splitSentence(string str) { string appendedWords{""},xx; for(int i=0 ; i < str.length();i++) { xx = str[i]; if (xx == " ")

当我尝试替换每个命令时,该函数是否存在某种问题,但它仍然显示分段错误

string splitSentence(string str)
    {
        string appendedWords{""},xx;
        for(int i=0 ; i < str.length();i++)
        {
            xx = str[i];
            if (xx == " ")
            {
                
                appendedWords = "";
            }
            else 
            {
                appendedWords = appendedWords + xx;
                
            }        
        }
    }
字符串拆分语句(string str)
{
字符串附加字{“”},xx;
对于(int i=0;i
我不知道您的程序应该做什么,因为现在它只在字符串中找到最后一个单词

我只是总结了这些评论,并稍微改进了您的代码

更改部分:

  • 通过引用传递字符串

  • str.length()在使用整数时返回无符号整数,这会导致编译器警告

  • 用x+=y代替了塔德曼指出的x=x+y

  • 添加的返回语句


  • 提示:不要忘记,
    x=x+y
    通常最好写成
    x+=y
    。即使函数被声明为返回
    字符串,也没有
    return
    语句。您是否试图解决此问题?打开所有编译器警告,或者实际读取忽略的编译器警告。更好的是,告诉编译器将警告视为错误,这样您就不得不读取它们。