用于打印字符串的put()与printf()

在C语言中,给定一个字符串变量 str ,将其打印到标准输出时应首选以下哪两种?

null
1) puts(str);
2) printf(str);

打印字符串时,可以首选puts(),因为它通常比较便宜(puts()的实现通常比printf()简单),而且如果字符串包含格式字符,如“%s”,则printf()会给出意外的结果。此外,如果str是用户输入字符串,那么使用printf()可能会导致安全问题(请参阅 详细信息)。 还要注意,put()将光标移动到下一行。如果不想将光标移动到下一行,则可以使用put()的以下变体。

fputs(str, stdout)

您可以尝试以下程序来测试上面讨论的put()和printf()之间的差异。

方案1

C

// C program to show the use of puts
#include <stdio.h>
int main()
{
puts ( "Geeksfor" );
puts ( "Geeks" );
getchar ();
return 0;
}


方案2

C

// C program to show the use of fputs and getchar
#include <stdio.h>
int main()
{
fputs ( "Geeksfor" , stdout);
fputs ( "Geeks" , stdout);
getchar ();
return 0;
}


方案3

C

// C program to show  the side effect of using
// %s in printf
#include <stdio.h>
int main()
{
// % is intentionally put here to show side effects of
// using printf(str)
printf ( "Geek%sforGeek%s" );
getchar ();
return 0;
}


方案4

C

// C program to show the use of puts
#include <stdio.h>
int main()
{
puts ( "Geek%sforGeek%s" );
getchar ();
return 0;
}


如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享