zoukankan      html  css  js  c++  java
  • 04数组 字符数组

    数组:相同数据类型的成员组成的一组数据。

    数组是一种构造类型,相同数据类型组成的新数据类型。

    一维数组的定义:

    类型说明符  数组名[常量表达式]= {值 1, 值 2....};

      int a[5] = { 2, 3, 4 }; 

      int b[5] = { 0 };

      int c[]={ 2, 4, 6, 8 };

      char str[] = "iPhone5";

      数组元素的访问 : 数组元素在数组中的序号,从 0 开始,

        下标可以是常量,也可以是变量   a[0] ,a[i];

          注意区别   定义数组 和 数组元素

     

             int  a[10] ;      

                   a[10] ;

    1、定义一个具有20个元素的整型数组,每个元素的取值范围是

    30-70之间,求数组元素的和。 

      int a[20] = {};

        int sum = 0;

        for (int i = 0; i<20; i++) {

            int random= arc4random()%(70-30+1)+30;

            a[i] = random;

            sum=sum+a[i];

               }

        printf("sum:%d",sum);

    3、生成2个数组,每个数组都有10个元素,元素取值范围20-40 之间,数组对应元素相加,放到另外⼀一个数组中。

        int a[10]={0};

        int b[10]={0};

        for (int i = 0; i < 10; i++) {

            int r= arc4random()%(40-20+1)+20;

            a[i]=r;

            b[i]=r;

            printf("a[%d]+b[%d]=%d \n",i,i,a[i]+b[i]);

        }

        注意:系统不会检测 数组元素的下标是否越界,编程时,必须保证数组下标不能越界。

                 数组是一个整体,不能直接参加运算,只能对单个元素进行处理,通常用到数组的地方都会用到循环。

     

       数租排序

      冒泡排序是比较常见的排序算法;

      冒泡排序涉及到双循环,外层循环控制趟数,内层循环控制比较次数;

    //1、随机产⽣生10个[20,40]数,并对10个数从⼩小到⼤大排序。 

    int a[10]={0};

        for (int i=0; i<10; i++) {

            int r=arc4random()%(40-20+1)+20;

            a[i]=r;

        }

        for (int i=0; i<9; i++) {

            for (int j = 0; j< 9; j++) {

                if (a[j]>a[j+1]) {

                    int temp=a[j];

                    a[j]=a[j+1];

                    a[j+1]=temp;

                }

            }

            

            }

          for (int i = 0;  i<10; i++) {

            printf("%d ",a[i]);

        }

       字符数组  

     用于存放字符变量的数组,属于一维数组,定义方式与普通一维数组相似,只是类型是  char

     字符数组的定义:

        char c[10] = {'i', 'p', 'h', 'o', 'n', 'e'};   或者 char c[10]="iphone";

        有'\0'结束标识的字符数组也称为字符串 。

        系统提供了很多字符串处理函数

      strlen() 计算字符串长度

      strcpy() 字符串拷贝

      strcat() 字符串拼接

      strcmp() 字符串比较

      //查找字符串中的空格数:

       //例如:“I love iOS, i want an iPhone5s” 6个空格 

     int c= 0;

        char a[]="I love iOS, i want an iPhone5s";

        for ( int i = 0; i < strlen(a); i++) {

            if (a[i]==' ') {

                 c=c+1;

            }

        }

          printf("%d ",c);

        //将字符串倒转:

         //例如:“afjnpue” 转变成字符串“eupnjfa”

      //(注:是改变字符串本⾝身,不是反向输出)

    char a[]="afhnpue";

    
    

        int number=strlen(a);

    
    

        for (int i = 0; i < number/2; i++) {  //前面的数和最后的数交换

    
    

            char temp = a[i];

    
    

            a[i]=a[number-1-i];

    
    

            a[number-1-i]=temp;

        }
        printf("%s",a);
    
    
    
    注意: 字符串所占的空间 至少要比字符串长度大1,因为字符串以'\0'表示结束。 
    系统提高的字符串处理函数都是根据
    '\0' 来判断字符串是否结束
    char str[]={'o','k'};
    char str[]="ok";


       

     

     

     

     

     

     

     

              

     

  • 相关阅读:
    生物创新科技素养大赛小车代码
    对拍程序
    Link-Cut-Tree学习笔记
    可平面性判定,任意平面图判定(代码实现)
    强联通缩点拓扑排序去重边小技巧
    20200405~06题解
    数论总结
    20200328题解
    Dp优化总结
    20200314题解
  • 原文地址:https://www.cnblogs.com/panny/p/4067519.html
Copyright © 2011-2022 走看看