所以我正在编写代码来将字符串放入数组中并且它工作得很好,但是我希望它在我点击文件中的 ## 时终止字符串的读取。我正在运行一个循环并逐行解析字符串。在我的字符串解析器中,我放置了一个循环来检查##。它在我的解析器函数的最后,它是:
for (i = 0; i < strlen(line)); i++)
{
if ((buffer[i] == '#') && (buffer[i+1] == '#'))
{
return -1;
}
}
问题是,当它在最后遇到带有 ## 的行时,它不会将字符串解析到我的数组中。似乎它只是忽略了这个循环之前的代码。
作为附加信息,我使用 strtok 在此 for 循环之前将标记放在我的 char* 数组中的位置。
编辑:这是我的 parseString 函数:
int parseString(char* line, char*** inString)
{
char* buffer;
int Token, i;
buffer = (char*) malloc(strlen(line) * sizeof(char));
strcpy(buffer,line);
(*inString) = (char**) malloc(MAX_TOKS * sizeof(char**));
Token = 0;
(*inString)[Token++] = strtok(buffer, DELIMITERS);
while ((((*inString)[token] = strtok(NULL, DELIMITERS)) != NULL) && (Token < MAX_TOKS))
Token++;
for(i=0; i<strlen(line); i++)
{
if ((buffer[i] == '#') && (buffer[i+1] == '#'))
{
return -1;
}
}
return Token;
}