【发布时间】:2022-07-29 08:27:15
【问题描述】:
我正在使用strtok 将用户函数拆分为三个(名字、中间名、姓氏),我不想破坏原始输入,因为我以后需要它,我想为了做到这一点,我需要将它复制到另一个变量中。我已经尝试过并且失败了。如何初始化char* fullName,以便将nameFull_ptr 数据复制到其中? (我使用 Visual Studio 2022)
void separate(char* nameFull_ptr, char* name1_ptr, char* name2_ptr, char* name3_ptr)
{
char* fullName = 0; // This is temporary for the sake of initialization
strcpy(fullName, nameFull_ptr);
char *token = strtok(fullName, " ");
int count = 0;
while (token != NULL)
{
count++;
switch (count)
{
case 1:
strcpy(name1_ptr, token);
break;
case 2:
strcpy(name2_ptr, token);
break;
case 3:
strcpy(name3_ptr, token);
}
token = strtok(NULL, " ");
}
}
【问题讨论】:
-
TL;DR:
char fullName[10000];有点老套但是... -
欢迎。你应该看看How to Ask 和tour,如果你还没有这样做的话。也看看minimal reproducible example。这是您在提问时应牢记的一般信息。
标签: c pointers initialization c-strings strtok