我遇到了C ++中的错误问题。这是代码:
错误为:表达式:字符串下标超出范围
#include "stdafx.h"
#include <iostream>
#include <algorithm>
#include <string>
void removeAllchars1(std::string s)
{
int len = strlen(s.c_str());
std::string b;
int len2 = strlen(b.c_str());
for(int i = 0; i < len; ++i)
{
if(isdigit(*(s.c_str()+i)))
{
b[len2]=s[i];
++len2;
}
}
std::cout <<"\nAfter removeAllchars1 function is:"<< *(b.c_str());
}
答案 0 :(得分:2)
b[len2]=s[i];
由于len2
是b
的长度(尽管以相当复杂的方式计算 - b.length()
有什么问题?),但这超出了范围,正如错误所示。如果要将字符附加到字符串,请执行以下操作:
b += s[i];