八度增加與strcat的空間倍頻strcat的忽略加空格
在八音我運行這些命令:
strcat ("hel", " ", "lo")
我得到這樣的結果:
ans = hello
而不是我所期待的:
ans = hel lo
strcat對我來說聽起來像是「連接字符串」。空格是有效的字符,因此添加空格應該是可以的。 Matlab有相同的行爲,所以它可能是有意的。
我覺得它很直觀。這種行爲是否合理?
八度增加與strcat的空間倍頻strcat的忽略加空格
在八音我運行這些命令:
strcat ("hel", " ", "lo")
我得到這樣的結果:
ans = hello
而不是我所期待的:
ans = hel lo
strcat對我來說聽起來像是「連接字符串」。空格是有效的字符,因此添加空格應該是可以的。 Matlab有相同的行爲,所以它可能是有意的。
我覺得它很直觀。這種行爲是否合理?
嗯。它的工作原理是如何定義的:
「的strcat消除在爭論尾隨空白(除電池陣列內),而cstrcat留下的空白不變。」
從http://www.gnu.org/software/octave/doc/interpreter/Concatenating-Strings.html
所以問題可能是:這種行爲是否應該改變。
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