在C语言中将一个字符串分成两个不同的字符串

在C语言中将一个字符串分成两个不同的字符串,c,string,C,String,我使用fgets在char name[20]中获取用户输入,如下所示: fgets(name,20,stdin); 用户输入两个由空格分隔的字符串,如John Smith。如果我想在两个字符串中使用John和Smith,比如char name[20],char姓氏[20],或者使用strcmp比较John和Smith,会怎么样 我尝试了很多,但我没有找到任何方法来做到这一点 有什么方法来解决这类问题? 你需要自己搜索字符串中的空白-查找StrCHR函数。然后,使用str

我使用
fgets
char name[20]
中获取用户输入,如下所示:

fgets(name,20,stdin);            
用户输入两个由空格分隔的字符串,如
John Smith
。如果我想在两个字符串中使用
John
Smith
,比如
char name[20]
char姓氏[20]
,或者使用
strcmp
比较
John
Smith
,会怎么样

我尝试了很多,但我没有找到任何方法来做到这一点


有什么方法来解决这类问题?

你需要自己搜索字符串中的空白-查找StrCHR函数。然后,使用strncpy将两部分复制到两个不同的字符串中。

使用该函数拆分字符串。

您需要学习C中的函数,该函数用于将字符串拆分为由一组分隔符分隔的标记

您输入的字符串
John Smith
由空格(
'
)字符分隔。您需要编写如下代码:

char *token;
token = strtok(name, " ");  // first name 
strcpy(fname, token);
token = strtok(NULL, " ");  // second name 
strcpy(lname, token);
阅读此
sscanf(姓名,“%19s%19s”,FirstName,姓氏),,