字符串的输入方式有可以通过scanf和gets这两种方式,输出可以通过 printf和puts这两种方式,同时定义的输出输入格式也可以为%c、%s两种,下面主要讨论这几种方式的区别。
接下来看下面一个例子:
#include<stdio.h>
#include<stdlib.h>
int main( int argc, char *argv[])
{
char str1[10],str2[10],str3[10],str4[10],str5[10];
int i;
//使用%c方式输入。输出字符串str1
printf("\n请使用%%c方式输入字符串str1:\n");
for(i=0;i<10;i++)
scanf("%c",&str1[i]);
printf("\n请使用 %%c方式输出字符串 str1:\n");
printf("str1=");
for(i=0;i<10;i++)
printf("%c",str1[i]);
fflush(stdin);
//使用%s方式输入、输出字符串 str2,str3
printf("\n使用%%s方式输入字符串str2,str3:\n");
scanf("%s%s",str2,str3);
printf("\n使用%%s方式输出字符串str2,str3:\n");
printf("str2=%s,str3=%s\n",str2,str3);
fflush(stdin);
//使用函数gets、puts的方式输入输出字符串str4,str5
printf("\n使用函数gets的方式输入字符串str4、str5:\n");
gets(str4);
gets(str5);
printf("\n使用函数puts的方式输出字符串str4、str5:\n");
printf("str4=");
puts(str4);
printf("str5=");
puts(str5);
return 0;
}
程序的运行结果可以由上图所示
从上面我们可以得出以下几点结论:
1.%c格式码
在函数scanf/printf中可以实现单个字符的输入输出,中间可以由空格;
2.%s格式码
输入的字符串之间不能有空格;可以实现多个字符串的输入,之间可以以空格作为分隔
3.gets、puts只能实现单个字符串的输入输出,输入的字符可以带空格,输出时会自动换行,不必加"\n.