我在c编程中学习,我需要编写代码。
我正在尝试从用户接收一个字符串(不超过80个字符),而不是将其用作命令。
命令看起来像那样 - <command name> <username> <number> <number>
。
我需要复制矩阵名称的用户名并复制行和列的数字,我真的不知道怎么做。
希望有人能帮助我。答案 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