我在将字符串转换为大写字母时遇到麻烦。在第三组单词之后,我的程序实际上开始变慢并冻结。我究竟做错了什么?
string iName = list[i]->GetLastName(); // This just returns a string of a name
string jName = list[j]->GetLastName();
for(unsigned int k = 0; k < iName.length(); k++)
{
iName[k] = toupper(iName[k]);
}
for(unsigned int l = 0; l < jName.length(); l++)
{
iName[l] = toupper(jName[l]);
}
最佳答案
正如其他人所说,您混合了iname和jname ....,为什么这么做呢?
因为你复制粘贴!
因此,编程方面的一个很好的早期类(class)就是尝试避免复制粘贴!而是尝试创建函数.....
就你而言...
void stringToUpper(string &s)
{
for(unsigned int l = 0; l < s.length(); l++)
{
s[l] = toupper(s[l]);
}
}
那你就可以
stringToUpper(iName);
stringToUpper(jName);
这种方法减少了很多与复制粘贴相关的错误,并且通常可以使您的程序更加模块化