C 我是否可以在';之后继续使用printf()写入字符串';?

C 我是否可以在';之后继续使用printf()写入字符串';?,c,string,printf,C,String,Printf,有没有一种方法可以用C语言编写如下Java格式的代码 //Assume "char str[n]" declared & initialized printf("The String \"%s\"",str); printf("contains %d bytes in RAM", sizeof(str)); 您可以将多个参数传递给printf,例如: System.out.println("The

有没有一种方法可以用C语言编写如下Java格式的代码

//Assume "char str[n]" declared & initialized
printf("The String \"%s\"",str);
printf("contains %d bytes in RAM", sizeof(str));

您可以将多个参数传递给
printf
,例如:

System.out.println("The String " + str + " contains " +  sizeof(str) + " bytes in RAM"); //I know there is no //sizeof(...) in Java, i just wrote it to demonstrate :D

参数的顺序必须与格式说明符(以
%
开头的)在格式字符串中的显示顺序相匹配。

您可以将多个参数传递给
printf
,例如:

System.out.println("The String " + str + " contains " +  sizeof(str) + " bytes in RAM"); //I know there is no //sizeof(...) in Java, i just wrote it to demonstrate :D

参数的顺序必须与格式说明符(以
%
开头的格式说明符)在格式字符串中的显示顺序相匹配。

您可以向
printf()提供多个格式说明符和多个值。

正如评论中指出的,您的代码中有一个错误
sizeof(str)
只给出变量的大小,而不是字符串的长度。你实际上在寻找的是strlen(str)

printf("The String %s contains %d bytes in RAM", str, sizeof(str));

您可以向
printf()

正如评论中指出的,您的代码中有一个错误
sizeof(str)
只给出变量的大小,而不是字符串的长度。你实际上在寻找的是strlen(str)

printf("The String %s contains %d bytes in RAM", str, sizeof(str));

谢谢你的回答!对不起,我是新手。你的答案也很有效。谢谢你的回答!对不起,我是新手。你的答案也行。@Roghan:没问题。不过,您应该先查看文档。在您最喜欢的搜索引擎中搜索printf文档c可以找到此函数的文档号。@P:代码中没有提到其他问题。我回答了他提出的问题。我现在已经补充了这一点。谢谢。@KenWhite回答说,你应该解释一下初学者犯的明显错误。@P明白了。没有引起足够的注意。我知道如何写答案-我不是新来的。:-)我不是唯一一个没有解决另一个问题的人。@KenWhite作为一个有经验的用户,您知道
sizeof(str)
%d
的使用是这里最常见的问题之一。我特别关注初学者从我们的答案中学到的常见错误。@Roghan:没问题。不过,您应该先查看文档。在您最喜欢的搜索引擎中搜索printf文档c可以找到此函数的文档号。@P:代码中没有提到其他问题。我回答了他提出的问题。我现在已经补充了这一点。谢谢。@KenWhite回答说,你应该解释一下初学者犯的明显错误。@P明白了。没有引起足够的注意。我知道如何写答案-我不是新来的。:-)我不是唯一一个没有解决另一个问题的人。@KenWhite作为一个有经验的用户,您知道
sizeof(str)
%d
的使用是这里最常见的问题之一。我特别关注初学者从我们的答案中学习到的常见错误。一个小错误是:
%d
格式说明符要求参数类型为
int
,但
sizeof
产生的值类型为
size\u t
。这在某些系统上可以正常工作,但在其他系统上可能会出现可怕的故障。您应该将
%d
更改为
%zu
@NateEldredge,谢谢您提供详细信息。有一个小错误:
%d
格式说明符需要类型为
int
的参数,但是
sizeof
生成类型为
size\t
的值。这在某些系统上可以正常工作,但在其他系统上可能会出现可怕的故障。您应该将
%d
更改为
%zu
@NateEldredge,谢谢您提供详细信息。我会小心的。