当我的字符串在c程序中包含空字符时?

当我的字符串在c程序中包含空字符时?,c,string,printf,null-terminated,C,String,Printf,Null Terminated,我仍然不知道,我在c程序中的字符串何时包含以null结尾的字符串,何时不包含以null结尾的字符串 我的代码示例 ... float t0 = 2.43, t1 = 3.42, t2 = 1, t3 = 10.9; ... printf("%.2f %.2f %.2f %.2f", t0, t1, t2, t3); ... 如果我在代码中使用printf-like,c程序是否会自动在打印的字符串末尾添加以null结尾的字符?否?答案是如果我在代码中使用printf-like,打印的字符串末尾

我仍然不知道,我在c程序中的字符串何时包含以null结尾的字符串,何时不包含以null结尾的字符串

我的代码示例

...
float t0 = 2.43, t1 = 3.42, t2 = 1, t3 = 10.9;
...
printf("%.2f %.2f %.2f %.2f", t0, t1, t2, t3); 
...

如果我在代码中使用printf-like,c程序是否会自动在打印的字符串末尾添加以null结尾的字符?否?

答案是
如果我在代码中使用printf-like,打印的字符串末尾是否包含null字符?
是否包含null字符,但您不会在printf中看到它


当表示为字符数组时,null终止符表示字符串的结尾。使用printf函数时,您将指向字符串开头的指针作为参数传递,它将打印字符串直到空终止符。

如果我在代码中使用printf,则打印的字符串是否结尾包含空字符?是,它包含空字符,但在printf中您将看不到它


当表示为字符数组时,null终止符表示字符串的结尾。使用printf函数时,您将指向字符串开头的指针作为参数传递,它将打印字符串直到空终止符。

如果我在代码中使用printf,则打印的字符串是否结尾包含空字符?是,它包含空字符,但在printf中您将看不到它


当表示为字符数组时,null终止符表示字符串的结尾。使用printf函数时,您将指向字符串开头的指针作为参数传递,它将打印字符串直到空终止符。

如果我在代码中使用printf,则打印的字符串是否结尾包含空字符?是,它包含空字符,但在printf中您将看不到它


当表示为字符数组时,null终止符表示字符串的结尾。使用printf函数时,您将指向字符串开头的指针作为参数传递,它将打印字符串,直到出现空终止符。

如果您声明
char format[]=%f%f\n,则实际上是的

使用gdb或添加一些研究代码,您将能够看到nul字节终止字符串。

实际上是的,如果您声明
char format[]=%f%f\n

使用gdb或添加一些研究代码,您将能够看到nul字节终止字符串。

实际上是的,如果您声明
char format[]=%f%f\n

使用gdb或添加一些研究代码,您将能够看到nul字节终止字符串。

实际上是的,如果您声明
char format[]=%f%f\n
使用gdb或添加一些研究代码,您将能够看到nul字节终止字符串。

printf("%.2f %.2f %.2f %.2f", ...
是字符串文字(
“%.2f%.2f%.2f%.2f%.2f”
),是,字符串文字也以
0
结尾。

的第一个参数

printf("%.2f %.2f %.2f %.2f", ...
是字符串文字(
“%.2f%.2f%.2f%.2f%.2f”
),是,字符串文字也以
0
结尾。

的第一个参数

printf("%.2f %.2f %.2f %.2f", ...
是字符串文字(
“%.2f%.2f%.2f%.2f%.2f”
),是,字符串文字也以
0
结尾。

的第一个参数

printf("%.2f %.2f %.2f %.2f", ...

是字符串文字(
“%.2f%.2f%.2f%.2f%.2f”
),是的,字符串文字也是
0
-终止的。

Q:如果我在代码中像printf一样使用,c程序会自动在打印的字符串末尾添加以null结尾的字符吗?
答:否。
printf()
通常不打印终止的空字符
'\0'
。相反,
“%.2f%.2f%.2f%.2f%.2f”
导致类似“1.12 2.23 3.34 4.45”的输出,最后一个字符打印为
'5'

[编辑]
格式
“%.2f%.2f%.2f%.2f%.2f”
是一个以空终止符结尾的字符串
'\0'
printf()
的打印输出未打印
'\0'
。格式中的空终止符
'\0'
printf()
发出停止信号。空终止符
'\0'
本身未打印


注意:在C中,C字符串总是有一个终止的空字符
'\0'
。如果
char
的数组不包含字符,则该数组不是字符串。因此,在上面的示例中,
printf()
的输出不是一个字符串,而是一系列字符。

Q:如果我在代码中使用printf,c程序是否会自动添加以打印字符串结尾的null或no?
答:否。
printf()
通常不打印终止的空字符
'\0'
。相反,
“%.2f%.2f%.2f%.2f%.2f”
导致类似“1.12 2.23 3.34 4.45”的输出,最后一个字符打印为
'5'

[编辑]
格式
“%.2f%.2f%.2f%.2f%.2f”
是一个以空终止符结尾的字符串
'\0'
printf()
的打印输出未打印
'\0'
。格式中的空终止符
'\0'
printf()
发出停止信号。空终止符
'\0'
本身未打印


注意:在C中,C字符串总是有一个终止的空字符
'\0'
。如果
char
的数组不包含字符,则该数组不是字符串。因此,在上面的示例中,
printf()
的输出不是一个字符串,而是一系列字符。

Q:如果我在代码中使用printf,c程序是否会自动添加以打印字符串结尾的null或no?
答:否。
printf()
通常不打印终止的空字符
'\0'
。相反,
“%.2f%.2f%.2f%.2f%.2f”
导致类似“1.12 2.23 3.34 4.45”的输出,最后一个字符打印为
'5'

[编辑]
格式
“%.2f%.2f%.2f%.2f%.2f”
是一个以空终止符结尾的字符串
'\0'
printf()
的打印输出未打印