利用数组处理数据

博客介绍了数组相关知识,包括一维数组和二维数组的定义形式,还阐述了字符数组的定义方法,以及% s和% c的区别。同时详细讲解了多个字符串处理函数,如gets、puts、strcat等的功能和使用示例,并给出统计单词数量的例题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、第一一维数组
定义一维数组的一般形式为:
类型符 数组名[常量表达式]
例:

#inculde<stdio.h>
int main()
{
	int a[10];					//定义一个有是个元素的数组
	int i;											
	for(i=0;i<=9;i++)				//用for循环对该数组里的十个元素进行赋值
	scanf("%d",&a[i]);
	for(i-0;i<=9;i++)
	printf("%d      ",a[i]);			//最后按顺序输出该数组的是个元素
	return 0;
}

二、定义二维数组
二维数组定义的一般形式为:
类型说明符 数组名[常量表达式] [常量表达式];
例如:
float a[3][4];其中表示该二维数组是由三行四列的矩阵构成
a[0]--------------------------a[0][0] a[0][1] a[0][2] a[0][3]
a[1]--------------------------a[1][0] a[1][1] a[1][2] a[1][3]
a[2]--------------------------a[2][0] a[2][1] a[2][2] a[2][3]

对二维数组的引用

#include<stdio.h>
int main()
{
	int a[2][3];					//定义一个2*3的二维数组
	int i,j;											
	for(i=0;i<=1;i++)				//控制行的输出
	for(j=0;j<=2;j++)				//控制列的输出
	scanf("%d",a[i][j]);			
	for(i=0;i<=1;i++)
	for(j=0;j<=2;j++)
	printf(%d       ",a[i][j]);
	return 0;
}

三、字符数组
1、用char 函数来定义字符数组
2、%s,%c的区别:
%s是输出一串字符串。例:

char c[]={"i am happy"};
printf("%s\n",c);			c为字符数组的首地址

%c:

char c[]="I am happy";
for(int i=0;i<=10;i++)
printf("%c",c[i]);

其中字符串的结束标志位’\0’。

四、使用字符串处理函数
1、gets函数
该函数表示从键盘上接受一串输出的字符串
2、puts函数
该函数与printf函数相差不大,都是输出函数
3、strcat函数
该函数作用是把两个字符数组中的字符串连接在一起,例:

char str1[30]="people's republic of";
char str2[]="china ";
printf("%s",strcat(str1,str2));			\\或puts(strcat(str1,sstr2));

输出结果为people’s republic of china
其主要过程为将str2[]数组放进str1数组里面,因此,str1[]必须足够大,以便容纳str2数组里面的元素。
4、strcpy和strncpy函数-------字符串复制函数。
其作用为:
讲字符串2复制到字符数组1中去,例;

char str1[10],str2[]="china";
strcpy(str1,str2);

其结果为:
china
说明:字符数组1必须定义的足够大,以便容纳被复制的字符串2.字符数组1的长度不应小于字符串2的长度;
字符数组1必须写成数组名形式,字符串2可以是字符数组名,也可以是一个字符串常量。
5、strcmp字符比较函数.
作用:将字符串1和字符串2进行比较。
例:

strcmp(str1,str2);
strcmp("china","korea");
strcmp("str1,"beijing"");

比较规则:将两个字符串从左自右逐个字符相比(把ascll大小比较),知道出现不同的字符或遇到’\0’为止。
如全部字符相同,则认为两个字符串相等。
如果字符串1与字符串2相同,则函数值为0;
如果字符串1>字符串2,则函数值为一个正整数;
如果字符串1<字符串2,则函数值为一个负整数;
6、strlen测字符串长度的函数
其函数的值为字符串中的实际长度(不包括’\0’在内),例:

char str[10]="china";
printf("%d",strlen(str));

输出结果为5

例题:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

#include<stdio.h>
int main()
{
	char string[81];
	int i,num=0,word=0;
	char c;
	gets(string);
	for(i=0;(c=string[i])!='\0';i++)
	if(c==' ')
	word=0;
	else if(word==0)
	{
		word=1;
		num++;
	}
	printf("there are %d words in this line .\n",num);
	return 0;

}

在这里插入图片描述

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值