2017-10-08 78 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後。

相關問題