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/

相关文章:

string - 在 Perl 中以逗号分隔的列表中的字符串部分中的字母替换数字

Python扩展模块段错误

java - 尝试将字符串转换为 MD5 时我做错了什么

java - 字符串到 HH :mm:ss time and finding the difference between 2 times

c - C中的LCM和GCD使用递归或普通方法

c - 使用 fputc 在 c 中写入整数数组的文件

mysql - 在 MySQL 中查找控制字符

c - C语言按位运算(0x80、0xFF、<<)

c - int main() 有什么问题?

c - OpenGL 链接错误