基本上我的代码我有变量/密钥对。当代码中遇到一个变量时,一个函数(包含下面一行的部分),它被替换为它的键。例如,如果用户输入字符串“Hello ABC World”并且变量被声明为ABC =“Great Big”,则输入字符串将被更改为“Hellow Great Big World”。我通过在变量之前和变量之后strtoking字符串的一部分来实现这一点,然后将newfirst(变量之前的部分)+变量key + newsecond(变量之后的部分)连接起来。在大多数情况下,这很有效,除非变量位于字符串“Hello World ABC”的末尾。因此,留下我认为的单个字符'\ n',并抛出错误,因为它无法标记剩下的内容。我有什么方法可以错误地处理这个问题吗?
// Place the part of the string before the variable prescence in newfirst
strcpy(newfirst, strtok(nonVariable[i], myVariables[a].variable));
// Place the part of the string after the variable prescence in newsecond
for(c = 0; c < strlen(newsecond); c++)
{
if(newsecond[c] == ' ')
hasSpaces = 1;
}
if(hasSpaces = 0)
{
strcpy(newsecond, strtok(NULL, "\n"));
}
else
{
strcpy(newsecond, strtok(NULL, " "));
strcpy(newsecond, strtok(NULL, "\n"));
}
// substitute all key values in for their corresponding variables
strcat(newfirst, " ");
strcat(newfirst, myVariables[a].key);
strcat(newfirst, " ");
strcat(newfirst, newsecond);
strcpy(nonVariable[i], newfirst);