字符串几种输入输出方式

字符串几种输入输出方式

字符数组的输入方式

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版权协议,转载请附上原文出处链接和本声明。