我有一些代码是从姓氏字符串中创建参考代码。它应该首先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;
}
}
当我尝试解决这个问题时,我得到了断言、访问冲突和一个似乎表明字符串不够大的字符串错误。任何帮助将不胜感激。