我在使用这个类的成员函数时遇到了一些问题。基本上,它旨在将单词翻译成不同的语言,同时保持相同的标点符号和空格。lineToTranslate 是一个输入参数,它是一个单词、空格和标点符号的数组。其中的每个单词都必须单独从行中取出并使用 dict.translate() 函数进行翻译。这工作正常。
但是,麻烦的是当有多个新行时,会输出上一行的单词。空格也没有得到充分照顾。当一个句子中有多个空格时,只输出一个空格。关于我可能出错的地方有什么想法吗?任何帮助将不胜感激。
更新了输入的代码,修复了大多数错误。我现在唯一遇到的问题是单词之间没有根据需要添加空格。连续有2个空格的地方,输入一个空格,有1个空格的地方,一个空格都不输入,这样输出单词。
int len = strlen(lineToTranslate);
string strComplete = "";
const char *cs;
for (int x = 0; x < len; x++)
{
if (!isspace(lineToTranslate[x]))
{
char temp[MAX_WORD_LEN];
int j = 0;
while(lineToTranslate[x] != ' ' && lineToTranslate[x] != '\t' && lineToTranslate[x] != '\n')
{
temp[j] = lineToTranslate[x];
x++;
j++;
}
temp[j] = '\0';
char returned[MAX_WORD_LEN];
if(temp[0] != '\0')
{
dict.translate(returned, temp);
strComplete = strComplete + returned;
}
}
else
{
strComplete = strComplete + lineToTranslate[x];
x++;
}
}
cs = strComplete.c_str();
strcpy(translatedLine, cs);