zoukankan      html  css  js  c++  java
  • C++学习(十四)(C语言部分)之 数组


    上期回顾:
    三大循环 for while do while (循环体至少会执行一次)
    四大跳转 goto continue(提前跳出当前循环 进入下一个循环) break(跳出本次循环) return(跳出当前函数)
    exit(在任意地方跳出程序)


    数组:
    ---->作用 同时定义多个相同类型的数据
    int arr[4]; //定义4个int 定义一个数组 arr是数组名

    [] 下标运算符
    定义格式 类型 数组名[数组大小];//定义数组的格式
    赋初值:
    定义的时候赋值 {} int arr[4]={1,2,3,4};//赋的值少于元素个数 多余的元素默认用0赋值
    定义之后再赋值 arr[0]=1;

     举个栗子

    第31行是直接在定义的时候就赋值

    第33-37行是在定义之后再进行赋值

     

    上图是用循环对数组进行赋值


    手动输入数组的值

    数组名[下标] //其中一个元素 下标可以是变量
    int arr[4];//下标从0开始 0-3(下标不超过这个范围都可以)

    错误的写法:
    int arr[4];
    arr[4]={1,23,4};

    int arr[]={1,2,3,4,5};//这种定义是正确的 可以给初值 不给大小

    arr--->数组名 街道
    [下标]---> 门牌号

    注意:定义的时候数组大小不能是变量 必须是整型

    数组大小 --->数组能存放多少个元素 定义数组的时候给定大小
    数组下标 --->元素的下标 从0开始 使用数组中元素的时候使用

    int crr[10000000];//会报错 数组太大 栈溢出

     

    字符数组
    格式:
    char str[10];//字符数组
    特殊用法 字符串 "1234" 双引号 字符串 中文 "你好世界"
    字符串用 '' 作为字符串结尾 一般是默认加上的 看不见

    ----->字符串一般用字符数组存放

    举个栗子

    输入时 不能有制表符

     

     

    ascii----->char 数字---->字符
    中文--->两个字符---->对应一个汉字
    没赋值 都是无效值---->乱码

    //一个中文占两个字节
    //赋默认值0 在定义的时候初始化才会赋值0
    //0-7 8'' 字符串结尾 后面的值 无效值
    //断点 --->添加监视

     

    #include<string.h>//用于字符串的操作的函数

    求数组大小 sizeof
    获取数组 gets(数组名称)
    输出字符串 puts(数组名称)
    求字符串长度 strlen()
    比较两字符串 strcmp(字符串1,字符串2);  字符串不能用等号比较

    字符串拷贝函数  strcpy(字符串1,字符串2);第二个字符串拷贝到第一个位置 覆盖原来的内容

    字符串连接函数   strcat(字符串1,字符串2);

    栗子

     

     

     

     测试代码如下:

     

      1 /*
      2 上期回顾:
      3 三大循环  for  while  do while (循环体至少会执行一次)
      4 四大跳转  goto  continue(提前跳出当前循环 进入下一个循环)  break(跳出本次循环) return(跳出当前函数) 
      5 exit(在任意地方跳出程序)
      6 
      7 
      8 数组:
      9   ---->作用 同时定义多个相同类型的数据 必须是整型 不能是小数个 必须是常量
     10   int arr[4];  //定义4个int  定义一个数组  arr是数组名
     11   
     12   [] 下标运算符
     13   定义格式  类型 数组名[数组大小];//定义数组的格式
     14   赋初值:
     15   定义的时候赋值 {}  int arr[4]={1,2,3,4};//赋的值少于元素个数 多余的元素默认用0赋值
     16   定义之后再赋值 arr[0]=1;
     17 
     18   数组名[下标] //其中一个元素  下标可以是变量
     19   int arr[4];//下标从0开始 0-3(下标不超过这个范围都可以)
     20   
     21   错误的写法:
     22   int arr[4];
     23   arr[4]={1,23,4};
     24 
     25   int arr[]={1,2,3,4,5};//这种定义是正确的 可以给初值 不给大小
     26 
     27   arr--->数组名 街道
     28   [下标]---> 门牌号
     29 
     30   注意:定义的时候数组大小不能是变量 必须是整型
     31 
     32    数组大小 --->数组能存放多少个元素 定义数组的时候给定大小
     33    数组下标 --->元素的下标 从0开始  使用数组中元素的时候使用
     34 
     35    int crr[10000000];//会报错 数组太大 栈溢出
     36 
     37    
     38    字符数组
     39    格式:
     40    char str[10];//字符数组
     41    特殊用法  字符串 "1234" 双引号 字符串 中文 "你好世界"
     42    字符串用 '' 作为字符串结尾   一般是默认加上的 看不见
     43 
     44    ----->字符串一般用字符数组存放
     45 
     46    ascii----->char 数字---->字符
     47    中文--->两个字符---->对应一个汉字
     48    没赋值 都是无效值---->乱码
     49 
     50    求数组大小  sizeof
     51    获取数组   gets(数组名称)   
     52    输出字符串  puts(数组名称)
     53    求字符串长度  strlen()
     54    比较两字符串  strcmp(字符串1,字符串2);  字符串不能用等号比较
     55    字符串拷贝函数  strcpy(字符串1,字符串2);
     56    字符串连接函数   strcat(字符串1,字符串2);
     57    
     58    
     59    */
     60 
     61 
     62 #include<stdio.h>
     63 #include<stdlib.h>
     64 #include<string.h>//用于字符串的操作的函数
     65 //mciSendString(mystring, 0, 0, 0);
     66 #include<windows.h>//graphics.h
     67 #include<mmsystem.h>
     68 #pragma comment(lib,"winmm.lib")
     69 int main()
     70 {
     71 #if 0
     72     //举个栗子
     73     int arr[4];//= {1,2,3,4};//arr是数组名字 可以随意取 赋值时元素用逗号隔开
     74 
     75     //printf("%d",arr[3]);
     76     //arr[0] = 1;
     77     //arr[1] = 2;
     78     //arr[2] = 3;
     79     //arr[3] = 4;//数组下标规定是从0开始的不能大于元素个数  (越界)
     80 
     81     for (int i = 0; i < 4; i++)
     82     {
     83         //arr[i] = i;
     84         printf("请输入arr[%d]的值",i);
     85         scanf_s("%d",&arr[i]);
     86         printf("%d	",arr[i]);
     87     }
     88 
     89 #endif
     90 #if 0
     91     //输入输出
     92     char arr[10];
     93     scanf("%s",arr);//特例 这种情况下scanf不需要取地址符
     94     printf("%s",arr);//输出
     95     //一个中文占两个字节
     96     //赋默认值0  在定义的时候初始化才会赋值0
     97     //0-7 8''  字符串结尾 后面的值 无效值
     98     //断点 --->添加监视
     99 
    100 #endif
    101 #if 0
    102     char arr[10] = "akdfnv";
    103     char mystring[80] = "play Debuggm.mp3 repeat";
    104     mciSendString(mystring, 0, 0, 0);
    105     printf("字符串长度%d
    ",strlen(arr));
    106 #endif
    107 #if 0
    108     if (strcmp("hello", "world") == 0)//比较两个字符串是否一致 
    109     {
    110         printf("字符串一致
    ");
    111     }
    112     else
    113     {
    114         printf("字符串不一致
    ");
    115     }
    116 #endif
    117 #if 1
    118     char arr[10] = { 'A', 'S', 'D', 'F', 'G' };
    119     strcpy(arr, "hello");//拷贝 第二个字符串拷贝到第一个位置 覆盖原来的内容
    120     puts(arr);
    121 #endif
    122 
    123 
    124     system("pause");
    125     return 0;
    126 }

     

     2018-06-19   21:58:48

     

  • 相关阅读:
    记一道乘法&加法线段树(模版题)
    2021CCPC网络赛(重赛)题解
    Codeforces Round #747 (Div. 2)题解
    F. Mattress Run 题解
    Codeforces Round #744 (Div. 3) G题题解
    AtCoder Beginner Contest 220部分题(G,H)题解
    Educational Codeforces Round 114 (Rated for Div. 2)题解
    Codeforces Global Round 16题解
    Educational Codeforces Round 113 (Rated for Div. 2)题解
    AtCoder Beginner Contest 182 F
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/9201349.html
Copyright © 2011-2022 走看看