#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { #pragma mark----------数组 //数组是容器,相同数据类型 //构造类型 // int a[3]={5,2,0}; //类型 // int[3]; //变量名 // a; //初值 // {5,2,0}; // int a[4] = {9,8,7,6}; // float b[6] = {2.5,3.14}; // char c[3] = "abc"; // char d[3] = {'a','b','c'}; // BOOL e[4] = {YES,NO}; //a[0]+a[1]操作数组下标取值赋值 //前有类型修饰符,代表数组,没有类型修饰符,代表下标 //1.生成一个包含20个元素数组,数组的值取值在30到70之间,并求出数组元素的和 // int sum = 0, a[20]={0}; // for (int i = 0; i<20; i++) { // a[i]=arc4random()%41+30; // printf("%d ",a[i]); // sum = sum + a[i]; // } // printf("\nsum=%d",sum); //2.复制 // int a[20]={0},b[20]={0}; // for (int i = 0; i<20; i++) { // a[i]=arc4random()%41+30; // printf("%d ",a[i]); // b[i]=a[i]; // } // printf("\n"); // for (int j = 0; j<20; j++) { // printf("%d ",b[j]); // } //3.生成两个数组,然后两个数组对应下标元素相加,放到第三个数组中 // int a[10]={0},b[10]={0},c[10]={0}; // for (int i = 0; i<10; i++) { // a[i]=arc4random()%(40-20+1)+20; // b[i]=arc4random()%(40-20+1)+20; // c[i]=a[i]+b[i]; // printf("%d + %d = %d\n",a[i],b[i],c[i]); // } // printf("\n"); // for (int j = 0; j<10; j++) { // printf("%d ",b[j]); // } // printf("\n"); // for (int j = 0; j<10; j++) { // printf("%d ",c[j]); // } #pragma mark--------------1 //注意, //1,系统不会检测数组元素的下标是否越界,编程时,必须保证数组下标不能越界 //2,数组是一个整体,不能直接参加运算,只能对单个元素进行处理,通常会用到数组的地方,就会用到循环(循环就是为了数组而生) // scanf("%d",&a); // getchar() 打印123def 结果是1 // printf(""),打印123def 结果是123 /** * 从键盘缓冲区读取数据 */ // int a[10]={0}; // for (int i = 0; i<10; i++) { // a[i]=arc4random()%31; // printf("%2d ",a[i]); // } // for (int i = 0; i<10-1; i++) { // for (int j = 0; j<10-1-i; j++) { // if (a[j]>a[j+1]) { // int temp = a[j]; // a[j]=a[j+1]; // a[j+1]=temp; // } // } // } // printf("\n"); // for (int i =0; i<10; i++) { // printf("%-2d ",a[i]); // } // int a[10]={0}; // for (int i = 0; i<10; i++) { // a[i]=arc4random()%(40-20+1)+20; // printf("%d ",a[i]); // } // for (int i = 0; i<10-1; i++) { // for (int j = 0; j<10-1-i; j++) { // if (a[j]>a[j+1]) {//max<a[i],min>a[i] // int temp = a[j]; // a[j]=a[j+1]; // a[j+1]=temp; // } // } // } // printf("\n"); // for (int i =0; i<10; i++) { // printf("%d ",a[i]); // } // strlen("hello"); #pragma mark--------------2 //字符串长度 比如hello,字符串长度5 // printf("%lu",strlen("hello")); //字符串所占空间 比如char[10]="hello" 字符串所占空间10; // char c[] = "hello"; // printf("%lu",sizeof(c)); // for (int i = 0; i<sizeof(c); i++) { // printf(" %c ",c[i]); // } // printf("\n%s ",c); //等同于下面 //%s,从首地址开始打印,直到打到/0结束 // char d = 0; // int i = 0; // while ((d = c[i]) != '\0') { // printf("%c",d); // i++; // } //strlen,测量字符串长度 //strcpy //strcmp,比较 //strcat//拼接 // char name[20]="zuoyoudong"; // printf("%s length = %lu",name,strlen(name)); // int i = 0; // while (name[i] !='\0') { // printf("%c",name[i]); // i++; // } // printf("%d",i); // char z[]="zuo"; // char y[5]="yi"; // strcpy(y, z); // printf("%s",strcpy(y, z)); //1,"hello",2,"abcdefghi",3,拷贝,hello\0ghi #pragma mark--------------3 // char str1[50] = "hangsan"; // char str2[10] = "lisi"; // strcpy(str2, str1);//前面目的串,后面来源串,const只可读,不可赋值 // printf("%s",str2); //字符串拼接strcat 注意:是否有足够的空间,放长度 // strcat(str1, str2);//带const修饰是不变的 // strcat(str1, str2); // printf("%s",str1); //字符串比较strcmp(按ASC码值求大小) // int result = strcmp(str1, str2); // printf("%d",strcmp(str1, str2)); // printf("%d",result); // if (result>1) { // printf("\n%s 大于 %s",str1,str2); // }else if (result==0){ // printf("%s 等于 %s",str1,str2); // }else{ // printf("\n%s 小于 %s",str1,str2); // } //strlen //strcmp //strcat //strcpy //查找字符串中的空格数 // char str[50] = "I love iOS,i want an iPhone5s"; // int i = 0,count = 0; // while (str[i]!='\0') { // char c = str[i]; // if (c ==' ') { // count++; // } // i++; // } // printf("%d",count); #pragma mark--------------4 //把字符倒转过来 //解题思路! //凡是交换要定义第三方temp char str1[]="hello"; char str2[5]=" "; long length = strlen(str1); // printf("%lu",length); printf("%lu",sizeof(str1)); // long length =strlen(str1); // printf("%lu",length); // int i = 0; // while (str1[i] !='\0') { // char temp = str1[i]; // str1[i]=str2[i]; // str2[i]=temp; // // } // printf("%s",str2); // for (int i = 0; i<sizeof(str1); <#increment#>) { // <#statements#> // } //#pragma mark--------------5绝对值 //#pragma mark--------------6for循环 //#pragma mark--------------7作业
C语言--一维数组,字符数组
时间: 2024-10-25 02:55:46