我似乎无法弄清楚如何采取从字符串name[n]
(其中n
为整数)的字符,并合并成另一个字符串char* initials = "";
如何串连从字符串中特定的字符到另一个在c
我曾尝试使用strcat(initials, &name[n]);
但它返回一个错误信息说segmantation fault
我想要做的就是从name
采取一个字符,并将其添加到initials
变量的末尾。
预先感谢您!
我似乎无法弄清楚如何采取从字符串name[n]
(其中n
为整数)的字符,并合并成另一个字符串char* initials = "";
如何串连从字符串中特定的字符到另一个在c
我曾尝试使用strcat(initials, &name[n]);
但它返回一个错误信息说segmantation fault
我想要做的就是从name
采取一个字符,并将其添加到initials
变量的末尾。
预先感谢您!
2件事。
strcat的追加串,而不是一个字符的副本,到另一个字符串。
C中的字符串常量是常量。您需要一个数组作为目标。 char initials[20]
什么
如果你想添加一个或多个字符的字符串,使用strncat代替
我只是想补充一下。
你想要的字符串name
在追加角色name[i]
到另一个字符串initials
。
你可以使用sprintf()
像
sprintf(initials, "%s%c", initials, name[i]);
这会写(或打印)的initials
原始值后面跟着一个字符name[i]
回initials
。
你也可以用它来追加一部分字符串。例如
sprintf(initials, "%s%.*s", initials, number, name+4);
这将追加从4
number
字符理论值的name
索引。
阅读here关于使用*
指定printf()
中的宽度。
.
in "%s%.*s"
用于指定精度。阅读this后。
但是在写入之前,您应该确保initials
有足够的空间。
snprintf()
可能会派上用场,但如果存在溢出,则有可能表示字符串的末尾未被复制。阅读this后。
首字母只读:文字上的指针。 –