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

标签 c string

<分区>

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

fgets(name,20,stdin);            

用户输入两个由空格分隔的字符串,如 John Smith。如果我想在两个字符串中使用 JohnSmith 怎么办,比如 char name[20] , char surname[20] 还是使用 strcmp 比较 JohnSmith

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

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

最佳答案

你需要学习char * strtok (char *restrict newstring, const char *restrict delimiters) C 中的函数用于将字符串拆分为由一组定界符分隔的标记。

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

char *token;
token = strtok(name, " ");  // first name 
strcpy(fname, token);
token = strtok(NULL, " ");  // second name 
strcpy(lname, token);

关于c - 在C中将单个字符串分成两个不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812881/

相关文章:

c - 关于除数和和完美数的棘手且令人困惑的 C 程序

如果未调用 init 函数,则 C Drop 编译器错误

Java:将字符串解析为int并计算总和

c - 在C中,如何读取地址前的内存块

c - 位屏蔽数组索引,Arduino 环境

c - "%c"规范如何与 scanf() 一起使用?

python - Python 中的字符串处理

c - 在 C 中,如何复制字符串数组的一部分以用作 execve 中的 argv?

c# - 在 C# 中将字符串转换为 int

c# - 尝试创建程序来反转字符串时出错