在C编程中读取带空格的行并分割单词

Reading line with spaces in C Programming and segmentating the words

我有类似于以下的输入:

强尼 ID5 409-208

我需要能够读取输入并按照如下结构组织输出:

姓名:约翰希
类型:ID5
身份证号码:409-208

但我正在努力寻找有关如何使用空格处理段的文献。我承认我是 C 的新手。

声明具有适当长度的变量并且:

scanf("%s %s %s", name, type, id);

如果您想了解如何处理单个字符,请查看下一部分。

#include <stdio.h>
#include <string.h>

int main()
{
    char mstring[] = "Hello World";
    char space = ' ';
    int a = 0;
    
    while ( a < strlen(mstring))
    {
        if (mstring[a] == space)
        {
            printf ("found space!");
        }
        a++;
    }

    return 0;
}

由于我的其他答案不被接受,这里是如何做的。但我认为,如果您尝试编写一个 returns 每个单词基于空格的函数,您会学到很多东西。这取决于你想学什么。

#include <stdio.h>

int main()
{
    char mstring[] = "Johnhy ID5 409-208";
    char name[50];
    char type[50];
    char id[50] ;

    
    sscanf(mstring, "%s %s %s", name, type, id);
    printf("Name:%s\nType:%s\nID:%s\n", name, type, id);

    return 0;
}