看起来你在护理不足方面有一些问题
pointers
,所以我建议你读一下。还可以考虑阅读
datatypes
和
types from STL you are using
. (因为std::string已经是一个值数组,所以在创建std::string[26]时,实际上是在创建指向指针的指针)
我猜你是在尝试这样做:
std::string replace(string a , string b)
{
std::string alpha = {"abcdefghijklmnopqurstuvwxyz"};
for (size_t i = 0; i < a.size(); ++i)
{
for(size_t n = 0; n < alpha.size(); ++n)
{
if(a[i] == alpha[n])
{
a[i] = b[n];
i++; // Also, I think you doesnt need this line, cause you already incrementing i in for loop
}
}
}
return a;
}
您还使用了
strlen()
在字符串上,这也是不正确的,因为它用于char值。如果你想知道字符串的长度,最好使用
string.lenght()
此外,最好使用
size_t
或
unsigned int
而不是
int
在这种情况下,因为不需要负数来排列这些字符串。()