6.利用数组处理批量数据
2013-04-06 00:17
585 查看
1.一维数组的定义
定义数组的一般形式为:类型符 数组名[常量表达式]
例如:int a[10];char str[20];a[10]表示数组有10个元素,元素从0开始,分别是0~9。
注:常量表达式不能为变量,有一种情况可以是在函数里面。如:
void func(int n)
{
int a[2*n];
}
在调用函数时,这里由于n是从实参得到值。这种情况称为“可变长数组”。但是记住,我们在执行这个函数的时候,数组长度是确定的,因为肯定传了n的确定值进去了。
2.一维数组的初始化
我们可以给数组初始化。
1)例如int a[10]={0,1,2,3,4,5,6,7,8,9};
2)给部分值赋值 int a[10] = {0,1,2,3,4,5} 表示给前面6个元素赋值。
3)如果要一个数组的值全相同。 int a[10] = {0} ;该数组所有元素值为0
4)由于赋值的时候,已经确定了数组长度,所以可以不指名常量表达式。int a[]={1,2,3,4,5};
3.冒泡算法附件
4.定义二维数组
定义二维数组和一维数组类似:如 float pay[3][6] ; 定义了一个float类型的二维数组,第一维3个元素,第二维6个元素。
在内存中,二维数组中元素排列顺序按行存放,即先存放第一行所有元素,再存放第二行所有元素...…
5.二维数组初始化
例如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} ;
如果要给某特定列赋值,可以用0省略前面的,如:
int a[3][4] = { {1} , {0,6} , {0,0,1} } ;
6.打擂台算法附件
7.C语言中没有字符串类型,字符串是存放在字符型数组中的
8.定义字符数组
定义字符数组与定义数值型的方法类似:
char c[10];
初始化: char c[]={'A','n','d','y'} ;
或者使用字符串常量来初始化:char c[]={"Andy"};或 char c[]="Andy" ;
需要注意的是:字符串初始化的长度与数组初始化的长度不同,字符串初始化会在最后默认加上字符串结束标志"\0"。所以它长度多1。
9.字符串结束标志
定义一个字符数组长度为100,而实际有效字符只有40个。为了测得字符的长度,C语言规定了一个字符串结束标志“\0”。也就是说,在遇到字符串“\0”的时候,就表示字符串结束,它前面的字符组成一个字符串。
10.字符串输入输出
1)逐个字符输入输出,用格式符"%c"。
2)整个字符串一次输入或输出,用格式符"%s"。
11.scanf输入字符串注意
假如我们需要输入:how are you? 的时候; 如果这样定义
char str[13] ;
scanf("%s",str);
由于系统默认把空格字符作为字符串之间的分隔符,所以在输入字符串的时候,默认在how后面加上了"\0"结束了字符串,因此系统只将how送到了str中。
正确的输入法:
char str1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);
注:scanf函数输入项如果是字符数组名,则不要再加上地址符"&",因为C语言中数组名代表该数组的起始地址。输入的数组如果是整型数组或不是字符数组,则必须加上&。
12.输出数组的起始地址
char c[]="China";
printf("%o",c)
输出原理:输出一个数组值的原理是得到一个数组的起始地址,然后一直输出字符直到遇到一个"\0"就停止下来。
13.字符串函数
1)puts(字符数组) //作用是将一个字符串输出到终端
2)gets(字符数组) //输入字符串函数,将终端输入值加载到字符数组中
3)strcat(字符数组1,字符数组2) //字符串连接函数,把字符数组2连接到字符数组1中
注:字符数组1必须足够大,以便容纳连接后的新数组。
4)strcpy和strncpy //字符串复制函数
strcpy(字符数组1,字符串2),表示把字符串2复制到字符数组1中去。
注:字符数组1必须定义足够大,起码要不小于字符串2的长度;字符数组1必须写成数组名形式;不能通过赋值语句直接将一个字符串或字符数组给一个字符数组,例如:str1="China"和str1=str2都是不合法的(其中str1是一个字符数组,str2是一个字符数组)。我们只能用strcpy函数将一个字符串复制到另一个字符数组中去。
strncpy(str1,str2,2),表示把str2中最前面的2个字符复制到str1中替代str1中原有的最前面2个字符,但复制的字符个数n不应该大于str1中的原有字符(不包括\0)
5)strcmp(字符串1,字符串2) //字符串比较函数,返回值为0,正或负
注:字符串比较将两个字符自左往右逐个比较(按ASCII码的值比较),直到出现不同的字符或遇到\0为止。比较结果由函数值带回,str1=str2值为0 ;str1>str2值为正数; str1<str2值为负数。
6)strlen(字符数组) //测试字符串长度(不包括\0在内)
7)strlwr(字符串) //将字符串中大写字母换成小写字母
8)strupr(字符串) //将字符串中小写字母替换成大写字母
定义数组的一般形式为:类型符 数组名[常量表达式]
例如:int a[10];char str[20];a[10]表示数组有10个元素,元素从0开始,分别是0~9。
注:常量表达式不能为变量,有一种情况可以是在函数里面。如:
void func(int n)
{
int a[2*n];
}
在调用函数时,这里由于n是从实参得到值。这种情况称为“可变长数组”。但是记住,我们在执行这个函数的时候,数组长度是确定的,因为肯定传了n的确定值进去了。
2.一维数组的初始化
我们可以给数组初始化。
1)例如int a[10]={0,1,2,3,4,5,6,7,8,9};
2)给部分值赋值 int a[10] = {0,1,2,3,4,5} 表示给前面6个元素赋值。
3)如果要一个数组的值全相同。 int a[10] = {0} ;该数组所有元素值为0
4)由于赋值的时候,已经确定了数组长度,所以可以不指名常量表达式。int a[]={1,2,3,4,5};
3.冒泡算法附件
4.定义二维数组
定义二维数组和一维数组类似:如 float pay[3][6] ; 定义了一个float类型的二维数组,第一维3个元素,第二维6个元素。
在内存中,二维数组中元素排列顺序按行存放,即先存放第一行所有元素,再存放第二行所有元素...…
5.二维数组初始化
例如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} ;
如果要给某特定列赋值,可以用0省略前面的,如:
int a[3][4] = { {1} , {0,6} , {0,0,1} } ;
6.打擂台算法附件
7.C语言中没有字符串类型,字符串是存放在字符型数组中的
8.定义字符数组
定义字符数组与定义数值型的方法类似:
char c[10];
初始化: char c[]={'A','n','d','y'} ;
或者使用字符串常量来初始化:char c[]={"Andy"};或 char c[]="Andy" ;
需要注意的是:字符串初始化的长度与数组初始化的长度不同,字符串初始化会在最后默认加上字符串结束标志"\0"。所以它长度多1。
9.字符串结束标志
定义一个字符数组长度为100,而实际有效字符只有40个。为了测得字符的长度,C语言规定了一个字符串结束标志“\0”。也就是说,在遇到字符串“\0”的时候,就表示字符串结束,它前面的字符组成一个字符串。
10.字符串输入输出
1)逐个字符输入输出,用格式符"%c"。
2)整个字符串一次输入或输出,用格式符"%s"。
11.scanf输入字符串注意
假如我们需要输入:how are you? 的时候; 如果这样定义
char str[13] ;
scanf("%s",str);
由于系统默认把空格字符作为字符串之间的分隔符,所以在输入字符串的时候,默认在how后面加上了"\0"结束了字符串,因此系统只将how送到了str中。
正确的输入法:
char str1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);
注:scanf函数输入项如果是字符数组名,则不要再加上地址符"&",因为C语言中数组名代表该数组的起始地址。输入的数组如果是整型数组或不是字符数组,则必须加上&。
12.输出数组的起始地址
char c[]="China";
printf("%o",c)
输出原理:输出一个数组值的原理是得到一个数组的起始地址,然后一直输出字符直到遇到一个"\0"就停止下来。
13.字符串函数
1)puts(字符数组) //作用是将一个字符串输出到终端
2)gets(字符数组) //输入字符串函数,将终端输入值加载到字符数组中
3)strcat(字符数组1,字符数组2) //字符串连接函数,把字符数组2连接到字符数组1中
注:字符数组1必须足够大,以便容纳连接后的新数组。
4)strcpy和strncpy //字符串复制函数
strcpy(字符数组1,字符串2),表示把字符串2复制到字符数组1中去。
注:字符数组1必须定义足够大,起码要不小于字符串2的长度;字符数组1必须写成数组名形式;不能通过赋值语句直接将一个字符串或字符数组给一个字符数组,例如:str1="China"和str1=str2都是不合法的(其中str1是一个字符数组,str2是一个字符数组)。我们只能用strcpy函数将一个字符串复制到另一个字符数组中去。
strncpy(str1,str2,2),表示把str2中最前面的2个字符复制到str1中替代str1中原有的最前面2个字符,但复制的字符个数n不应该大于str1中的原有字符(不包括\0)
5)strcmp(字符串1,字符串2) //字符串比较函数,返回值为0,正或负
注:字符串比较将两个字符自左往右逐个比较(按ASCII码的值比较),直到出现不同的字符或遇到\0为止。比较结果由函数值带回,str1=str2值为0 ;str1>str2值为正数; str1<str2值为负数。
6)strlen(字符数组) //测试字符串长度(不包括\0在内)
7)strlwr(字符串) //将字符串中大写字母换成小写字母
8)strupr(字符串) //将字符串中小写字母替换成大写字母
相关文章推荐
- 第五章 利用数组处理批量数据
- C语言程序设计-第6章 利用数组处理批量数据
- 6.利用数组处理批量数据
- 第六章:利用数组处理批量数据
- C语言程序设计---6:利用数组处理批量数据
- 利用事件自动处理程序从网上批量下载指定数据
- (转载)你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作
- 利用Ajax生成ProgressBar:实现同类大批量数据批量生成Html,并实时显示进度条,可查看处理日志
- 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作
- Numpy学习笔记之利用数组处理数据
- 利用JDBC中处理批量更新oracle数据
- 利用mapreduce批量读写hbase数据
- Avro技术应用_3. 利用 Hive 表处理 Avro 数据
- 利用JDBC处理mysql大数据--大文本和二进制文件等
- C++利用函数调用实现数组数据的输入输出
- java操作Excel之POI(5)利用POI实现使用模板批量导出数据
- 利用SQL 2005 CTE处理树型数据(ZT)
- CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr
- phoenix 利用CsvBulkLoadTool 批量带入数据并自动创建索引
- mysql利用存储过程批量插入数据