从字符串中恢复信息

时间:2018-04-26 05:32:28

标签: c

我在c编程中学习,我需要编写代码。

我正在尝试从用户接收一个字符串(不超过80个字符),而不是将其用作命令。

命令看起来像那样 - <command name> <username> <number> <number>

我需要复制矩阵名称的用户名并复制行和列的数字,我真的不知道怎么做。

希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

如果

之类的命令串之间有空格

command_name username number number,

使用fgets()后,您可以使用strtok()按空格标记字符串

因此,它返回带有这些标记的数组。

arr[4] = [(cmd name), (username), (number), (number)];

然后如果你想在字符串中找到第二个词 - 用户名 -

你只是把它放在数组中并使用它。

char* user_name = arr[1];

我希望我的回答很有用。

这是一个示例代码。

如果您想使用strtok()

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

    int main(void)
    {
        char cmd[] = "Add kate 12 20";
        printf("input command : %s\n", cmd);
        char *token = strtok(cmd, " ");
        while(token) {
            puts(token);
            token = strtok(NULL, " ");
        }
        return 0;
    }

或如果您想使用strtok_s()

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

    int main(void)
    {
        char cmd[] = "Add kate 12 20";
        char *next_token;
        printf("input command : %s\n", cmd);
        char* token = strtok_s(cmd, " ", &next_token);
        while(token) {
            puts(token);
            token = strtok_s(NULL, " ", &next_token);
        }
        return 0;
    }

结果是

input command : Add kate 12 20

Add

kate

12

20