2010-06-22 123 views

回答

4

像這樣:

"\\\\.\\" 
"\\" 
3

\是一個轉義字符,所以如果你想打印\你需要把其中的兩個:\\

要連接兩個字符串就可以使用的strcat(STRING1 ,字符串2),顯示爲here

+1

-1:C沒有連接運算符。 C++字符串類重寫了operator +以提供類似的功能,但絕不是即使在C++中也是核心語言運算符。 – 2010-06-22 16:30:39

+0

oops。只是改變了它。感謝 – Kyra 2010-06-22 16:33:22

+0

+1編輯的答案。 @Billy ONeal,你可能會考慮在更正後刪除你的downvote。 – 2010-06-22 16:35:29

1

正如其他人所說,C中的反斜槓字符()是一個轉義字符。查看http://msdn.microsoft.com/en-us/library/h21280bw%28VS.80%29.aspx可以找到更多關於它的信息。

所以你的字符串出來如下:

"\\.\" is "\\\\.\\" 
"\" is "\\" 

有很多方法來連接字符串。

puts("Hello" " " "World"); 

將打印「Hello World」。

一個常用的方法是使用strcat()。

char szBuff[60];     /* szBuff is an array of size 60 */ 
strcpy(szBuff, "Hello");   /* szBuff contains "Hello" */ 
strcat(szBuff, " World");   /* szBuff contains "Hello World" */ 
strcat(szBuff, " from Michael"); /* now contains the whole sentence */ 
strcpy(szBuff, "New message"); /* strcpy overwrites the old contents */ 
+0

好的,但是除非你別無選擇,否則應該避免''中的設施。 – 2010-06-22 17:07:08

+0

@比利:爲什麼?在C++中有更好的方法,但是C通常是操縱字符串的首選方法。 你會如何推薦這樣做? – 2010-06-22 22:09:46

+0

如果可用,我建議您使用接受緩衝區長度輸入的方法或使用類似M $使用的安全C字符串庫(strcpy_s,strcat_s和friends)之類的方法自己編寫它們。爲什麼C標準使用一種方法,當有長度前綴的字符串可用時,允許這種簡單的緩衝區溢出對我來說沒有意義。 – 2010-06-22 23:13:09