%c和%s在c语言中是如何工作的?
至此,%c和%s在c语言中是如何工作的?,c,C,至此,%s将继续打印直到终止,即\0。 %c如何知道终止并只打印一个字符?%c总是打印一个字符 char x = 'a'; 这里我们有一个需要打印的字符a char x[2] = "a"; 在上面的示例中,我们有两个字符,一个是'a',另一个是'\0' 因此,在打印时,我们需要使用%s,以便它遇到字符串结尾“\0”并打印字符串。字符串格式不是C或该语言的功能。是由C运行时库提供的工具 “%c”不需要终止符,因为它只处理一个字符 char x = 'a'; “%s”将继续处理字符,直到遇到用
%s
将继续打印直到终止,即\0
。
%c
如何知道终止并只打印一个字符?%c总是打印一个字符
char x = 'a';
这里我们有一个需要打印的字符a
char x[2] = "a";
在上面的示例中,我们有两个字符,一个是'a'
,另一个是'\0'
因此,在打印时,我们需要使用%s,以便它遇到字符串结尾“\0”并打印字符串。字符串格式不是C或该语言的功能。是由C运行时库提供的工具 “%c”不需要终止符,因为它只处理一个字符
char x = 'a';
“%s”将继续处理字符,直到遇到用C表示为“\000”(或“\0”)的ASCII NUL字符。字符串或字符常量中的正斜杠是没有任何特殊含义的可打印字符
此外,几乎每个C运行时库都提供了对%s
长度的更多控制:
如果未遇到NUL,则最多可处理123个字符%.123s
需要两个匹配参数:第一个是指定最大字段宽度的整数,第二个是字符指针。示例:%.*s
printf(“x=%.*s\n”,15,ptr)代码>
%s表示字符流表示它必须从内存流位置获取数据,因此它需要一个终止字符,因此%s需要“\0”。
%c
和%s
是标准库中的printf()
函数的一部分,而不是语言本身的一部分
也就是说,printf()
使用%
后面的字符以及函数来确定它将从参数中读取什么类型的变量,以及它将如何处理它。高度简化的printf()
实现可能如下所示
请特别注意,%c
和%s
不处理相同类型的参数%c
处理char
(即单个字符),而%s
处理char*
(即指向字符数组的指针,希望以null结尾)
它总是打印一个字符,不需要魔法(猜测你想问关于
printf
。在这种情况下,你真的应该阅读文档,为方便起见进行链接。)使用%c
格式,printf
不需要知道终止。顺便说一句,它是'\0'而不是'/0'。-->int c=va_arg;普查尔(c)代码>