我想从多个字符串创建一个“fullname”变量。像这样的:

strcpy (fullname, firstname);
strcat (fullname, separator); // separator is initialized at " "
strcat (fullname, middlename);
strcat (fullname, separator);
strcat (fullname, lastname);

此代码在我的项目中的多个位置重复我本来想做一个函数来实现这个功能,但现在我想知道是否没有更好的方法来实现它。
有什么想法吗?

最佳答案

您还可以执行以下操作:

sprintf (fullname, "%s%s%s%s%s", firstname, separator, middlename, separator, lastname);

但始终要确保fullname指向一个缓冲区,该缓冲区可以容纳连接的所有内容的总长度。
int size;
int *fullname;
size = strlen (firstname) + strlen (separator) + strlen (middlename) + strlen (separator) + strlen (lastname) + 1;

fullname = malloc (sizeof (char) * size);

sprintf (fullname, "%s%s%s%s%s", firstname, separator, middlename, separator, lastname);

/* Work */

free (fullname);

关于c - 用C将多个字符串分组为一个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7138322/

10-12 14:00