在C中将单个字符串分成两个不同的字符串

时间:2013-12-28 09:19:12

标签: c string

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

fgets(name,20,stdin);            

用户输入两个由空格分隔的字符串,如John Smith。如果我想在JohnSmith这两个字符串中使用char name[20]char surname[20],或者只使用{{1}比较JohnSmith,该怎么办? }}?

我尝试了很多,但我没有找到任何办法。

有哪些方法可以解决这类问题?

3 个答案:

答案 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功能拆分字符串。