字符串几种输入输出方式
字符数组的输入方式
1 scanf输入与printf输出
scanf对字符类型有%c和%s两种格式
%c用来输入单个字符
%s用来输入一个字符串并存放在字符数组
重点!!!%c格式能够识别空格跟换行符并将其输入,而%s通过换行符或空格来识别一个字符串的结束。
#include <stdio.h>
int main()
{
char str[10];
scanf("%s",str);
printf("%s",str);
return 0;
}
当遇到空格和回车之后的输入就不会识别了

#include <stdio.h>
int main()
{
char a,b,c;
scanf("%c%c%c",&a,&b,&c);
printf("%c %c %c",a,b,c);
return 0;
}
char a会识别空格和换行使用%c输入时会识别空格与换行

#include <stdio.h>
int main()
{
char a,b,c;
scanf("%c %c %c",&a,&b,&c);
printf("%c %c %c",a,b,c);
return 0;
}

2getchar输入与putchar输出
getchar与putchar分别用来输入和输出单个字符并且能识别换行和空格
前两种输入方式有不同处
getchar(ch)或ch=getchar或scanf("%c",&ch)
getchar(a[i][j])错误 a[i][j]=getchar()正确或scanf("%s",a[i][j])
ch=putchar错误 putchar(ch)或printf("%c",ch)
a[i][j]=putchar()错误 putchar(a[i][j])正确或printf("%c",a[i][j])
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][5];
int i,j;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
// getchar(str[i][j]);
str[i][j]=getchar();
//错误写法getchar(str[i][j]);getchar与putchar都只能识别单个字符
}
getchar();
}
// getchar();
printf("-----------------------\n");
for(i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
putchar(str[i][j]);
}
putchar('\n');
}
// putchar('\n');//putchar()的括号里边是字符\n不是单个字符之后'\n'会被识别为换行符
return 0;
};

3gets与puts的输入输出
gets用来输入一行字符串(注意:gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要使用gets,需要先用getchar接收整数后的换行符),并将其存放于一维数组或二维数组中的一维中;
puts用来输出一行字符串,即将一维数组(或二维数组的一维)在界面上输出,并紧跟一个换行
格式
gets(数组名) puts(数组名)
#include <stdio.h>
#include <string.h>
int main()
{
char str1[2];//一维数组好像比二维数组不容易失真
printf("请输入一个一位数组:\n");
gets(str1);
puts(str1);
printf("请输入一个二维数组\n");
char str2[7][8];//数组过少时容易失真
for(int i=0;i<3;i++)
{
gets(str2[i]);
}
printf("\n");
for(int i=0;i<3;i++)
{
puts(str2[i]);
}
return 0;
}


这点没有考虑明白…
版权声明:本文为weixin_51675802原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。