2017-10-08 53 views
-2

我似乎无法弄清楚如何采取从字符串name[n](其中n为整数)的字符,并合并成另一个字符串char* initials = "";如何串连从字符串中特定的字符到另一个在c

我曾尝试使用strcat(initials, &name[n]);但它返回一个错误信息说segmantation fault

我想要做的就是从name采取一个字符,并将其添加到initials变量的末尾。

预先感谢您!

+0

首字母只读:文字上的指针。 –

回答

1

2件事。

  1. strcat的追加,而不是一个字符的副本,到另一个字符串。

  2. C中的字符串常量是常量。您需要一个数组作为目标。 char initials[20]什么

如果你想添加一个或多个字符的字符串,使用strncat代替

0

我只是想补充一下。

你想要的字符串name在追加角色name[i]到另一个字符串initials

你可以使用sprintf()

sprintf(initials, "%s%c", initials, name[i]); 

这会写(或打印)的initials原始值后面跟着一个字符name[i]initials

你也可以用它来追加一部分字符串。例如

sprintf(initials, "%s%.*s", initials, number, name+4); 

这将追加从4number字符理论值的name索引。

阅读here关于使用*指定printf()中的宽度。

. in "%s%.*s"用于指定精度。阅读this后。

但是在写入之前,您应该确保initials有足够的空间。

snprintf()可能会派上用场,但如果存在溢出,则有可能表示字符串的末尾未被复制。阅读this后。

相关问题