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

 

原文地址:https://www.cnblogs.com/Yuuki-/p/9201349.html