C ++ 中的字符数组

字符数组的初始化

字符数组可以采用和普通数组一样的初始化方式,当然也可以采用直接赋值字符串的形式初始化(这种方式仅限于初始化赋值)

#include<stdio.h>
#include<string.h>
int main() {
    
    
	char str1[12] = {
    
    'i',' ','l','o','v','e',' ','y','o','u'};
	char str2[12] = "i love you";
	for(int i = 0; i<12; i++) {
    
    
		printf("%c",str1[i]);
	}
	printf("%s\n",str1);
	for(int i = 0; i<12; i++) {
    
    
		printf("%s\n",str2);
	}

}

在这里插入图片描述

字符数组的输入和输出

1.scanf 和 printf

scanf 和 printf对字符类型有%c和%s两种格式
其中%c 用来接收单个字符
%s 用来接收字符串,并将其存放在字符数组中
%c 可以空格和换行符,并将其作为输入
%s 通过空格或者换行来识别一个字符串的结束

#include<stdio.h>
#include<string.h>
int main() {
    
    
	char str1[12];
	scanf("%s",str1);
	printf("%s",str1);
	return 0;
}

在这里插入图片描述

2.getchar 和 putchar

用于输入输出单个字符

#include<stdio.h>
#include<string.h>
int main() {
    
    
	char str[5][5];
	for(int i = 0; i < 3; i++) {
    
    
		for(int j = 0; j < 3; j++)
			str[i][j] = getchar();
		getchar();//吸收换行符
	}

	for(int i = 0; i < 3; i++) {
    
    
		for(int j = 0; j < 3; j++)
			putchar(str[i][j]);
		putchar('\n');//输出换行符 
	}

	return 0;
}

在这里插入图片描述

3.gets 和 puts

gets用来输入一行字符串(注意:gets识别换行符/n作为输入结東,因此 scanf完一个整数后,如果要使用gets,需要先用 getchar接收整数后的换行符),并将其存放于一维数组(或二维数组的一维)中;puts用来输出一行字符串,即将一维数组(或二维数组的一维)在界面上输出,并紧跟一个换行。

#include<stdio.h>
#include<string.h>
int main() {
    
    
	int n;
	char str[5][5];
	scanf("%d",&n);
	getchar();
	for(int i = 0; i < n; i++) {
    
    
		gets(str[i]);
	}
	for(int i = 0; i < n; i++) {
    
    
		puts(str[i]);
	}
	return 0;
}

在这里插入图片描述

如果没有 getchar接收整数后的换行符
在这里插入图片描述

字符数组的存放方式

字符数组是由若干个char类型的元素组成,因此字符数组的每一位都是一个char字符。
在字符数组的最后都会有一个空字符\0存放字符串的结尾。因此开字符数组长度要多加一
使用scanf和gets会自动最最后添加,也就是说(getchar不会自动添加)

string.h 头文件函数

#include<stdio.h>
#include<string.h>
int main() {
    
    
	char str1[12] = {
    
    'i',' ','l','o','v','e',' ','y','o','u'};
	char str2[12] = "i love you";
	//strlen获取长度 
	printf("%d\n",strlen(str1));
	printf("%d\n",strlen(str2));
	//字典序比较 返回正 负 0 
	printf("%d\n",strcmp(str1,str2));
	char str3[12];
	//复制拷贝函数 
	strcpy(str3,str1);
	puts(str3);
	//连接函数 
	strcat(str3,str1);
	puts(str3);
	}

在这里插入图片描述

sscanf 和 sprintf

拆分:

  • sscanf表示为:string + scanf:sscanf()函数:从字符串中读取指定格式的数据

  • sprintf表示为:string + printf
    表示:

  • scanf(screen,"%d",&n)表示将屏幕的内容以%d的形式传输到n中(从左到右)

  • printf(screen,"%d",n)表示将n以%d的形式传输到屏幕中(从左到右)

  • sscanf(str,"%d",&n)表示将屏幕的内容以%d的形式传输到str中(从左到右)

  • sprintf(str,"%d",n)表示将n以%d的形式传输到str中(从左到右)

#include<stdio.h>
#include<string.h>
int main() {
    
    
	int n;
	char str1[4] = "123";
	sscanf(str1,"%d",&n);
	printf("%d\n",n);
	char str2[100] = "16:41,Monday";
	int hour,min;
	char str_xingqi[100];
	sscanf(str2,"%d:%d,%s",&hour,&min,str_xingqi);
	printf("时间为%d:%d星期%s\n",hour,min,str_xingqi);
	char str3[5];
	sprintf(str3,"%d",n);
	puts(str3);
	char str4[100];
	sprintf(str4,"时间为%d:%d星期%s\n",hour,min,str_xingqi);
	puts(str4);
	
	}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/q54188p/article/details/113938521
今日推荐