2010-06-22 118 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