2012-02-13 64 views
2

我想連接兩個const char *字符串。strcat期望一個restrict * char?

當我有這樣strcat(a,b)聲明我得到警告expected ‘char * restrict’ but argument is of type ‘const char *’

有沒有辦法來調用strcat的,不會產生警告? 謝謝!

回答

7

strcat()修改第一個操作數。因此它不能是const。但你通過了一個const char*

因此,您不能在兩個const *char字符串上使用strcat()

+0

非常感謝!它導致了一些醜陋的語句,但工作得很好,而不是說'char * c = strcat(a,b); '我可以使用'char * c = strcat(strcat(c,a),b);'提供我已經malloc'd c。 – user974703 2012-02-13 21:22:07

+0

@ user974703:你最好確定你'malloc' *和*將'c'指向的內存設置爲0,因爲'malloc'不會爲你做。或者,使用'strcat(strcpy(c,a),b);'。或者,因爲'strcat'效率不高,'sprintf(c,「%s%s」,a,b);' – 2012-02-13 21:52:31