x3fang_c 2023-05-17 20:44 采纳率: 8.7%
浏览 15

这串分隔字符的代码有错吗

这串分隔字符的代码有错吗:

        getline(cin,n);
    len=n.length()-1;
    string temps_to_n_44_temp;
    cout<<n.length()<<endl;
    int sp=9;
    for(int i=0;i<=len;i+=sp)
    {
        if(i+sp>len)
        {
            string temps;
            temps=n.substr(i,len-i);
            temps_to_n_44_temp+=temps;
            break;
        }
        else
        {
            string temps;
            temps=n.substr(i,sp);
            temps_to_n_44_temp+=temps;
            cout<<temps_to_n_44_temp<<endl;
        }
    }
        n=temps_to_n_44_temp;
        cout<<n;
  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-05-17 20:50
    关注

    参考GPT和自己的思路:这段代码没有语法错误,但是存在逻辑错误。在第6行的for循环中,步长(sp)应该是可变的,以使得最后一段字符串长度不会超过指定的分隔长度。而在代码中,步长固定为9,这可能会导致最后一段字符串长度超过分隔长度。另外,在第3行,变量名中的下划线可能是因为在编辑器中没有正确显示空格所致,应该修改为"temps_to_n_44_temp"。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月17日