我试图使用strtok(按空格分隔)拆分包含第一个中间名和姓氏的字符串,然后将每个名称存储到自己的变量中,以发送给其他函数.我可以用名字和中间名来完成这项工作,但我不能做两件事:第一,我不能在全名输入不失真的情况下发回数据(这意味着全名变量在函数执行后等于名字),第二,我不能将姓氏存储在姓氏变量中.
以下是我目前掌握的信息:
void separate(char* nameFull_ptr, char* name1_ptr, char* name2_ptr, char* name3_ptr)
{
char* cSpace_ptr;
if ((cSpace_ptr = strchr(nameFull_ptr, ' ')) == NULL)
puts("The text does not contain more than one name");
else
{
*cSpace_ptr = '\x0';
strcpy(name1_ptr, nameFull_ptr);
nameFull_ptr = cSpace_ptr + 1;
strcpy(name2_ptr, nameFull_ptr);
strtok(name2_ptr, " ");
}
}