这是我要解析的char数组:
array1 word 2, 3, 4, 5, 6, 7
现在我已经编写了以下代码来尝试这样做:
char* variableName = strtok(currentLine, " "); // array1
strtok(NULL, " "); // skip the 'word' token
char arrayOfElements[256]; // 256 = maximum line size
char* currentElement = strtok(NULL, " "); // currentElement = "2,"
strcpy(arrayOfElements, currentElement); // arrayOfElements = "2,"
int numberOfArrayElements = 1;
while (currentElement != NULL ) { // <== I think it's a inifinite loop becuase of this condition but I don't know how to fix this condition
currentElement = strtok(NULL, " "); // = "3," on first pass
strcat(arrayOfElements, " "); // = "3, " on first pass
strcat(arrayOfElements, currentElement); // arrayOfElements = "2, 3," on first pass
numberOfArrayElements++;
}
我的最终目标是我想要arrayOfElements = 2,3,4,5,6,7
答案 0 :(得分:0)
重新排序代码,以便在尝试使用指针之前进行测试。此外,arrayOfElements
需要初始化。
char* variableName = strtok(currentLine, " "); // array1
strtok(NULL, " "); // skip the 'word' token
char arrayOfElements[256]; // 256 = maximum line size
char* currentElement = strtok(NULL, " "); // currentElement = "2,"
int numberOfArrayElements = 0;
arrayOfElements[0]='\0'; // initialize the array to an empty string.
while (currentElement != NULL ) {
if (numberOfArrayElements > 0)
strcat(arrayOfElements, " ");
strcat(arrayOfElements, currentElement);
numberOfArrayElements++;
currentElement = strtok(NULL, " ");
}