2012-12-24 77 views
2

八度增加與strcat的空間倍頻strcat的忽略加空格

在八音我運行這些命令:

strcat ("hel", " ", "lo") 

我得到這樣的結果:

ans = hello 

而不是我所期待的:

ans = hel lo 

strcat對我來說聽起來像是「連接字符串」。空格是有效的字符,因此添加空格應該是可以的。 Matlab有相同的行爲,所以它可能是有意的。

我覺得它很直觀。這種行爲是否合理?

回答

0

strcat取得輸入參數並修剪尾隨空格,但不是前導空格。如果您將參數作爲一個或多個空格傳遞,它們將摺疊爲空白字符串。

該行爲是「cellstr」如何在末端空格被移除的情況下工作的體現。

約1

工作,如果你把空間對抗的「LO」,它是一家領先的空間,不會被刪除。

strcat ("hel", " lo") 

ans = hel lo 

約2

使用cstrcat而不是工作:

cstrcat("hel", " ", "lo") 

ans = hel lo 

工作約3

用printf,可以比strcat的更快。

printf("%s%s%s\n", "hel", " ", "lo") 

hel lo