请帮助调试。它给了我一个错误“字符串下标超出范围错误”。
程序需要使用插入排序算法对文本进行排序。
这是代码:
#include<iostream>
#include<string>
using namespace std;
void insertionSort(string &text, int size) {
char temp;
int i;
for(int j=1;j<size;j++)
{
//text.push_back(temp);
temp=text[j];
i=j-1;
while(i>=0 && text[i]>temp)
{
text[i+1]=text[i];
i--;
}
text[i+1]=temp;
}
}
int main()
{
string text="this a just text need to be sorted";
int size = text.length();
insertionSort(text,size);
cout<<text<<endl;
return 0;
}
调试断言失败!
线路:1441:
表达式:字符串下标超出范围
我应该text[i+1]=text[j]
改为text[i+1]=text[i]
;