IOS-C基础语法02

作者: 任任任任师艳 | 来源:发表于2017-07-20 20:30 被阅读10次

    //字符数组,存储字符的数组
    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]);
    // }

    相关文章

      网友评论

        本文标题:IOS-C基础语法02

        本文链接:https://www.haomeiwen.com/subject/gvvjkxtx.html