抱歉,我不知道如何正确表达我遇到的问题。
我正在接受用户的无符号字符输入,比方说
unsigned char array = "123 343 342 4235 87 34 398"
现在我想将该字符串中的每个数字除以空格放入一个单独的数组
项目[0] = 123
项目[1] = 343
项目[2] = 342
等等。我该如何解决这个问题?
我忘了提及我正在使用 Linux 进行编译,所以 tutorialspoint.com/c_standard_library/c_function_strtok.htm
不适合我编译或工作
最佳答案
这确实是一个常见问题,例如这里: Tokenizing strings in C
但无论如何,这里有一个答案:
#include <stdio.h>
#include <string.h>
int main(void) {
const int maxParsed = 32;
char array[] = "123 343 342 4235 87 34 398";
char* parsed[maxParsed];
char* token = strtok(array, " ");
int numParsed = 0;
int i;
while(token) {
parsed[numParsed] = token;
token = strtok(NULL, " ");
numParsed++;
if(numParsed == maxParsed) { break; }
}
for(i=0; i<numParsed; i++) {
printf("parsed string %d: %s \n", i, parsed[i]);
}
}
编辑:此代码在输入非空且不包含分隔符的边缘情况下失败。如果第一次调用 strtok() 返回 NULL,您应该检查该条件。
关于c - 如何用 C 将字符串分成单独的项目(用空格分隔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26288418/