C中的数组和其他语言里面的数组大同小异。不过多阐述太多基础。
先看一个简单的一维数组例子:
经典的冒泡排序
#include<stdio.h>
int main()
{
int array[10]={1,10,4,27,2,5,8,39,0,18};
int i,j,a; for(i=0;i<=8;i++)
for(j=0;j<=8-i;j++)
if(array[j]<array[j+1])
{
a=array[j];
array[j]=array[j+1];
array[j+1]=a;
}
for(i=0;i<=9;i++)
printf("%d ",array[i]);
return 0;
}
在看一个二维数组例子:
在C语言中所有的字符串都是以字符数组来进行处理。以�来判断字符数组是否结束。�是由系统自动加上的
#include <stdio.h>
void main(){
int i,j,a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for( i=0;i<3;i++){
max=a[i][0];
for( j=0;j<3;j++)
{
if(max<a[i][j]){
max=a[i][j];
}
}
printf("第 %d 行的最大值是:%d
",(i+1),max);
}
}
字符数组的拼接:将tr拼接到s并以�结束
#include<stdio.h>
#include<string.h>
void main()
{
char s [] = "my name is ";
char tr[] = "xwq";
printf("%s",strcat(s,tr));
}
字符串的拷贝:将tr拷贝到s覆盖原来的值并以�结束
#include<stdio.h>
#include<string.h>
void main()
{
char s [] = "my name is ";
char tr[] = "xwq";
printf("%s",strcpy(s,tr));
}
字符串的比较:不能将两字符直接比较 C是按地址来判断的 strcmp
是由左往右判断ASCII值
#include<stdio.h>
#include<string.h>
void main()
{
char s [] = "my name is ";
char tr[] = "xwq";
/*返回-1 因为m比x小
*小返回-1,大返回1 等于返回0
*/
printf("%d",strcmp(s,tr));
}
字符串有效长度:strlen("China"); return 5;
字符串转小写:strlwr("China");
字符串转大写:strupr("China");