【发布时间】:2015-04-23 17:59:05
【问题描述】:
我的意思是有可能打印一个像 ("hello") 这样的字符串,即只是 "e" 或 "l"。 我想我可以用这段代码来完成:
char *gg = "hello";
printf("%.4s \n",gg + strlen(gg) - 2);
但它不起作用。
【问题讨论】:
-
您只需将 "%.4s \n" 更改为 "%c \n" 并用 * 取消引用 (gg + strlen(gg) - 1)。
-
@ParhamAlvani:我想你的意思是
"%.1s"。您需要%s用于字符串(gg + strlen(gg) - 2是)和"%c"用于字符。 -
@pmg Ok %s for string 但你想要 1 个字节,所以你需要 %c。在 C 中,当你说 print %s 时,你的意思是去读取字符串直到 \0,当你说 print %c 时,你的意思是只打印一个字符。
-
不!
%c需要int类型的值,%s需要char *类型的值。这些类型不兼容。你不能随意互换它们 -
现在好了。很好的修正:)