在C中,给定一个字符串变量str ,应首选以下两个中的哪一个将其打印到stdout?
1) puts(str);
2) printf(str);
可以首选puts()来打印字符串,因为它通常更便宜(puts()的实现通常比printf()更简单),并且如果字符串具有诸如’%s’之类的格式字符,则printf()会给出出乎意料的结果。另外,如果str是用户输入字符串,则使用printf()可能会导致安全问题(有关详细信息,请参见此内容)。
还要注意,puts()将光标移动到下一行。如果您不希望光标移动到下一行,则可以使用puts()的以下变体。
fputs(str, stdout)
您可以尝试使用以下程序来测试上述puts()和printf()之间的差异。
程序1
C
// C program to show the use of puts
#include
int main()
{
puts("Geeksfor");
puts("Geeks");
getchar();
return 0;
}
C
// C program to show the use of fputs and getchar
#include
int main()
{
fputs("Geeksfor", stdout);
fputs("Geeks", stdout);
getchar();
return 0;
}
C
// C program to show the side effect of using
// %s in printf
#include
int main()
{
// % is intentionally put here to show side effects of
// using printf(str)
printf("Geek%sforGeek%s");
getchar();
return 0;
}
C
// C prgram to show the use of puts
#include
int main()
{
puts("Geek%sforGeek%s");
getchar();
return 0;
}
程序2
C
// C program to show the use of fputs and getchar
#include
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
int main()
{
// % is intentionally put here to show side effects of
// using printf(str)
printf("Geek%sforGeek%s");
getchar();
return 0;
}
程序4
C
// C prgram to show the use of puts
#include
int main()
{
puts("Geek%sforGeek%s");
getchar();
return 0;
}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。