2016-09-12 99 views
-4

我如何可以插入一個字符串中間的字符。 例如,我有如何在C中的字符串中插入一個字符?

char aa = "C:\\Users\\Ruby\\Desktop"; 

我想將其更改爲

aa = "C:\\\\Users\\\\Ruby\\\\Desktop"; 

是否有任何內置的功能呢?如果不是,我該怎麼做?謝謝。

+7

這是無效C. –

+0

編譯代碼,以驗證它是有效的 - 它不是,至少有2個原因。 – chux

+0

@Alter Mann'char a [64] =「C:\ Users \ Ruby \ Desktop」; '不是有效的C代碼。 (有趣的轉義序列),這可能會促成OP的問題。 – chux

回答

1

這是在C不可能的,因爲一個字符串是一塊分配的內存,它包含以連續的方式字符,這意味着如果你想在某個索引添加一個字符串或字符,你需要分配更多的內存(如果你分配的內存正好是字符串的大小+空終止字符),並移動索引大於我們添加的字符/字符串的所有字符。

最直接的方法是分配一個足以容納字符串的新內存塊,並開始逐字節地複製,當你到達'/'時只需添加一個額外的'/'到目標字符串。

而且,如一些人所提到的,這不是有效的C。 當聲明一個char你基本上分配內存段的一個字節的大小,不足以包含整個字符串(字符串大於一個字符是),如果它是一個數組,那麼你將不能夠初始化這種方式,正確的方式做這將是 char *c = "C:/...";
分配較大的內存段,並複製它從字符指針。

+0

謝謝,這有很大的幫助 –

相關問題