在C语言中,%s和%d在printf中的含义是什么?

我不明白%sd%在这个C代码中做了什么:

 for (i=0;i<sizeof(code)/sizeof(char*); i++) { printf("%s%d%s%d\n", "Length of String ", i, " is ", strlen(code[i])); str = code[i]; printf("%s%d%s%c\n","The first character in string ", i, " is ", str[0]); } 

我是C语言的新手,我的背景是Java。

  • %s%d%s%d符号表示什么?
  • 为什么会有这么多?
  • 这里使用的逗号是连接而不是+

printf()函数系列使用%字符作为占位符。 遇到%时,printf会读取%后面的字符以确定要执行的操作:

 %s - Take the next argument and print it as a string %d - Take the next argument and print it as an int 

请参阅此维基百科文章以获得精彩图片: printf格式字符串

字符串末尾的\n是换行符/回车符。

%表示法称为格式说明符。 例如,%d告诉printf()打印一个整数。 %s打印字符串(char *)等。您应该在这里查找: http : //google.com/search?q = printf+format +specifiers

不,逗号不用于字符串连接。 逗号用于分隔传递给函数的参数。

第一个参数表示后面的变量/参数的占位符。
例如, %s表示您希望String是您的第一个打印参数。

Java也有一个非常相似的printf

%d是打印为int%s是打印为字符串%f是打印为浮点

应该注意的是,这与Java不同是不正确的。 Printf代表打印格式,如果您使用Java格式化打印,这是完全相同的用法。 这可能允许您解决C和Java中的有趣和新问题!

printf的第一个参数是一串标识符。

%s表示字符串%d表示整数%c表示字符。 因此:%s%d%s%c \ n打印字符串“sting中的第一个字符”,%d打印i,%s打印“是”,%c打印str [0]。

%s用于字符串%d用于十进制(或int)%c用于字符

它似乎在咀嚼一系列字符,并打印出从每个后续位置开始存在的任何字符串。 在每种情况下,字符串将在第一个空值处停止。

逗号只是将参数分离为一个带有可变数量args的函数; 此数字对应于前面格式描述符中的%args数。

"%s%d%s%d\n"是格式字符串; 它告诉printf函数如何格式化和显示输出。 格式字符串中没有紧跟在其前面的%任何内容都按原样显示。

%s%d是转换说明符; 他们告诉printf如何解释其余的参数。 %s告诉printf相应的参数将被视为一个字符串(在C术语中,以0结尾的char序列); 相应参数的类型必须是char *%d告诉printf相应的参数将被视为整数值; 相应参数的类型必须是int 。 由于您来自Java背景,因此请务必注意printf (与其他可变函数一样)依赖于告诉它剩下的参数的类型是什么。 如果格式字符串是"%d%s%d%s\n" ,则printf将尝试将"Length of string"视为整数值,将i视为字符串,并带有悲剧结果。

%(字母)表示替换文本的格式类型。 %s指定字符串,%d指定整数,%ca指定char。

%s%d%s%d \ n是格式字符串。 它用于指定信息在输出上的格式。 这里格式字符串应该打印字符串后跟一个数字后跟一个字符串然后再输入一个数字。 最后一个符号\ n表示回车符,表示行的结尾。 在C中,字符串不能通过+或连接,尽管您可以使用适当的格式字符串在一行上组合不同的输出(格式字符串的使用是格式化输出信息。)。