在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