我使用char name[20]
在fgets
中接受用户输入,如下所示:
fgets(name,20,stdin);
用户输入两个由空格分隔的字符串,如John Smith
。如果我想在John
,Smith
这两个字符串中使用char name[20]
和char surname[20]
,或者只使用{{1}比较John
和Smith
,该怎么办? }}?
我尝试了很多,但我没有找到任何办法。
有哪些方法可以解决这类问题?
答案 0 :(得分:2)
您需要学习C语言中的char * strtok (char *restrict newstring, const char *restrict delimiters)
函数将字符串拆分为由分隔符集分隔的标记。
您输入的字符串John Smith
由空格(' '
)char分隔。您需要编写如下代码:
char *token;
token = strtok(name, " "); // first name
strcpy(fname, token);
token = strtok(NULL, " "); // second name
strcpy(lname, token);
答案 1 :(得分:0)
您需要自己搜索字符串中的空白 - 查找strchr函数。然后,使用strncpy将两个部分复制到两个不同的字符串中。
答案 2 :(得分:0)
使用strtok功能拆分字符串。