c - 如何用 C 将字符串分成单独的项目(用空格分隔)

标签 c arrays string

抱歉,我不知道如何正确表达我遇到的问题。 我正在接受用户的无符号字符输入,比方说 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/

相关文章:

python - Numpy/Scipy 如何将 C 函数转换为向量化的 Python 函数?

c - y 组合器和 C 预处理器

c++ - 零长度 C 数组绑定(bind)到指针类型

c - 为什么这个字符串反转 C 代码会导致段错误?

python - 在输入提示中使用字符串格式?

c - 我无法将 char 作为字符串访问

android - 将 CImg 库添加到 android NDK(用于图像处理)

C 计算整数中特定数字的出现次数

c++ - int (*p)[3] 和 int *p[3] 有什么区别?

javascript - json 数组,数组中返回错误?错误的字符串