#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%s \n", &x[0]);
return 0;
}
以上代码会打印出"hello world."
如果我想只打印出"h"
,应该怎么做?x[0]
不应该保证这一点吗?
你应该做:
printf("%c \n", x[0]);
打印字符的格式说明符是c
。因此要使用的格式字符串是%c
。
此外,要访问有效索引i
处的数组元素,您需要使用array_name[i]
。您不应该使用&
。使用&
会给您元素的地址。
访问
x[0]
不应该保证这一点吗?
不是的,因为 &x[0]
中的 &
获取字符串第一个元素的地址(所以等同于只使用 x
)。
%s
将输出字符串中所有字符,直到看到字符串末尾的空字符(对于文字字符串来说是隐含的)。
为了打印出单个字符而不是整个字符串,请使用字符格式说明符 %c
。
请注意,printf("%s \n", x[0]);
是无效的,因为 x[0]
的类型是 char
,而 %s
需要一个 char *
类型。
#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%c \n", x[0]);
return 0;
}
C语言中的字符串是一个字符数组,最后一个字符是空字符\0
。当你在printf
函数中使用%s
格式化字符串时,它会从给定地址开始打印字符,并一直打印到遇到空字符为止。如果要打印单个字符,请使用%c
格式化字符串。
由于C中的字符串是字符数组。 此语句将打印第一个字符。
printf("%c \n", "hello world."[0]);