我有一些代码是从姓氏字符串中创建参考代码。它应该首先char考虑元音与否,然后搜索char数组中剩余的每个元音,丢弃仅在 temp 中存储辅音的元音string,然后将 temp 返回string到string refCode;C 中给我的代码,我将其转换为 C++。代码编译正确地分配了第一个值,但是如果if返回true,它将在尝试将第二个值分配给 temp 时失败string。代码超过 5 个 external.cpp和 4 个.h,所以我将从最少的数量开始,并根据需要发布更多。
原型:
string makeRefCode(string lastname, int cNo);
称呼:
refCode = makeRefCode(e[c].lastname, cNo); cout << refCode;//Prints nothing
函数定义:
string makeRefCode(string lastname, int cNo)
{
string tStr;
unsigned int i, j = 1;
unsigned int x;
x = lastname.length();
tStr[0] = lastname[0];
cout << tStr[0];//Prints correct value
for (i = 1; i < x; i++)
{
if (!isVowel(toupper(lastname[i])))
{
//tStr[j] = lastname[i];//
j++;
}
}
//refCode[j] = '0'; // add string terminator
return tStr;
}
bool isVowel(char aChar)
{
switch (aChar) //<ctype>
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': return true; break;
default: return false;
}
}
当我尝试解决这个问题时,我得到了断言、访问冲突和一个似乎表明字符串不够大的字符串错误。任何帮助将不胜感激。