//字符数组,存储字符的数组
char str1[7] = {'h','e','l','l','o','a','\0'};
//打印下标为3的字符
printf("%c\n",str1[3]);
//将小写的o改为大写的O
str1[4] = 'O';
printf("%s \n",str1);
//定义字符串--
//字符串 本身就都是字符数组,只是字符串的结尾是以\0来结束的,如果在字符数组中也设置了\0那么此数组也可以当做字符串来输出
char str2[]="Hello World"; printf("%s \n",str2); //来列举字符串的情况//1.设置元素个数大于实际元素的个数 char str3[10]={'r','s','y','q'}; printf("%s \n",str3); //2.手动设置\0 char str4[] = {'h','e','\0'}; printf("%s \n",str4); //##########字符串操作函数 //计算字符串长度,以\0结束的标识 char string1[]="you are my love"; //注意长度属于计算类型,但是>=0的 strlen只能用来计算字符串 unsigned long strLenght = strlen(string1); // printf("%lu \n",strLenght); //字符串拼接,将一个字符串拼接给另一个字符串 //字符串2的内存必须要给大 char string2[30] = "Wuli xiao fan"; char string3[] = "World"; strcat(string2, string3);//将字符串3拼接到2后面 printf("%s \n",string2); //长度不用考虑容量,但是字符串拼接和拷贝必须注意变量内存问题 //3.字符串拷贝 strcpy(string2, string3);//后面的复制到前面 printf("%s \n",string2); //4.比较两个字符串对应位置的字符,比较的是字符串的整数值,对应位置的相减,结果不为0就结束比较 char s1[]="abcde"; char s2[]="bbcdf"; int result = strcmp(s1, s2);//前-后,,,一旦不一样就停止 printf("差值为%d \n",result); //练习1:已知一个字符串,计算出字符串中的空格的数量 char ss[]="slsl lplp lp lpp lpl";//32 回车10 unsigned long strLenght1 = strlen(ss); int count=0; for (int i=0; i<strLenght1; i++) { if (ss[i] == ' ') { count++; } } printf("%d \n",count); }return 0;
//1.数组:帮助创建多个变量
//缺点:数组中只能存储相同类型的数据
//数组定义的规则
//数据类型 数组名[元素个数] = {值1,值2,值3....}
//注意:数组的元素个数只能为整型常量,不要写变量
//开始写
int array[5] = {2,5,89,10,6};
char a[4] = {'i','h','k','l'}; // 4个字节 //2.可以不设置数组个数,系统会按照数组的赋值自行分配 short b[] = {9,80,6,9};//默认就是占8个字节的空间 //函数sizeof()可以帮助计算变量在内存中占用的字节 用lu输出 unsigned--(-127~128)无符号默认正值
// 统计数据 无符号
//lu 无符号长整型 unsigned long
printf("%lu \n",sizeof(array));
printf("%lu \n",sizeof(b));
//制定数组元素的个数,所给的数组赋的值得个数必须,小于等于元素个数 只要保证数组不越界
// int c[5] = {90,8,7,9,88,9,99};
// printf("%d\n",c);
//3.数组的下标 //下标从0开始,最大下标就是元素个数减1 //下标意义:就是帮助准确找到某一个元素 //使用规则:数组名[元素下标] printf("%d \n",array[2]); //修改 array[2] = 2222; printf("%d \n",array[2]); //数组的输出,依赖循环 //通过循环遍历数组的每一个下标,来取出数组的值 //注意 初始化变量值要从0开始 for (int i = 0; i < sizeof(array) / 4; i++) { printf("&&%d***\n",array[i]); } //随机数----arc4random() 中间数:(大区间-小区间+1)+小区间 int num1 = arc4random()%(90-55+1)+55; printf("随机数为:%d\n",num1); //定义整形数组,包含10个元素,元素的值范围[30,70],数组的初始值是0.给数组赋随机值,并求和还有平均数 int a1[10] = {0},sum = 0,arg=0.0; for (int i = 0; i<10 ; i++) { a1[i] = arc4random() % (70 - 30 + 1) + 30; printf("数组%d \n",a1[i]); sum += a1[i]; arg=sum / 10.0; } printf("和为%d \n 平均值%d \n",sum,arg); //l2 有两个元素的个数为10整型数组a和b(数组个自定义)数组a中的元素随机赋值[20,40],然后将数组a的元素赋值到b中 int a2[10],b2[10]; for (int i = 0; i < 10; i++) { a2[i] = arc4random() % (40-20+1) +20; printf("a2 %d\n",a2[i]); b2[i] = a2[i]; printf("b2 %d\n",b2[i]); } //输出打印,数组之间不能相互赋值也不能相互打印
// for (int i = 0; i<10; i++) {
// printf("a2 %d %db2 \n",a2[i],b2[i]);
// }
//3.元素个数为10的整形数组,元素赋值随机的范围[30,70],求数组中的最小值和最大值
int a3[10],min=70,max=0;
// for (int i = 0; i<10; i++) {
// for (int j = 0; j<10; j++) {
// a3[i] = arc4random() % (70-30+1) + 30;
// a3[j] = a3[i+1];
// if (a3[i]>a[j]) {
// a[j] = a3[i];
// max = a[j];
//
// }
// }
//
// }
// printf("max===%d \n",max);
//
//
// for (int i = 0; i<10; i++) {
//
// a3[i] = arc4random() % (70-30+1) + 30;
// if (a3[i]< min) {
// min = a3[i];
//
// }
// }
//
// printf("min====%d \n",min) ;
for (int i=0; i<10-1; i++) { for (int j=0; j<10-i-1; j++) { a3[i] = arc4random() % (70-30+1) + 30; if (a3[j]>a3[j+1]) { int temp = a3[j]; a3[j]= a3[j+1]; a3[j+1] = temp; max=a3[j+1]; printf("max===%d \n",max); } } } //4定义两个整型数组,元素的个数为10,数组的取值范围为随机[20,60]将这两个数组的元素放入一个新的数组中
// int a4[10],b4[10],c4[20];
// for (int i = 0; i<10; i++) {
// a4[i]=arc4random() % (60 - 20+1) +20;
// b4[i]=arc4random() % (60 - 20+1) +20;
//
// c4[i] = a4[i];
// c4[i+10] = b4[i];
// printf("a4=%d \n b4=%d",a4[i],b4[i]);
// }
// for (int i =0; i<20; i++) {
// printf("cccccc4=%d\n",c4[i]);
// }
//------------------------------------------------------------------- //冒泡排序 //1.需要双层循环,外层控制循环的趟数,内层控制每趟循环的次数 //2.提高效率而言.外层趟数为元素个数-1,内层循环次数处于递减的状态,为元素个数-1(必须减,会越界)-i(为了提高效率,不和最后一个比较) //3.VIP--内存循环必须设置元素的个数-1的操作要防止下标越界
// int f[6]={89,7,9,66,24,18};
// for (int i=0; i<6-1; i++) {
// for (int j = 0; j<6-1-i; j++) {
// //升序
// if (f[j]>f[j+1]) {
// //前者大于后者的话就交换位置
// int temp = f[j];
// f[j]= f[j+1];
// f[j+1] = temp;
//
// }
// }
// }
//
// for (int i = 0; i<6; i++) {
// printf("%d\n",f[i]);
// }
作者:任任任任师艳
链接:https://www.jianshu.com/p/1333d8bde7bb