嵌入式基础学习|C语言篇——数组(含进阶)二

接上篇:

插入排序:
   DABC
   基本思想:
    在一个有序的序列中,找到要插入的位置,进入数据插入 

       //原地插入排序 
    int j = 0;

    for (i = 1; i < n; ++i)
    {
        int t = a[i];
        j = i;

        while (j > 0 && t < a[j-1])
        {
            a[j] = a[j-1];
            --j;
        }
        a[j] = t;
    }

1.二维数组 

二维数组的定义 

适用于:多个同类型数据 批量处理的情况 。

类型说明符 数组名  [常量表达式][常量表达式];
      (1)      (2)            (3)
   
(1).类型说明符   ---表示二维数组中数据元素的类型 
(2).数组名       ---标识符 
(3).[常量表达式][常量表达式]   //
       第1维       第2维   
         行           列 

二维数组的本质 --- 实际上一个一维数组 ,c语言中并不存在真正的二维数组 

二维数组元素的访问:
数组名[第一维下标][第二维下标]
数组名[行][列]
全部初始化 
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //全部初始化 
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //全部初始化     
部分初始化 
int a[3][4] = {1,2,3,4,5,6}; //全部初始化 
int a[3][4] = {{1,2},{5,6},{9,10,11,12}}; //全部初始化    

2.字符串:
   char ch[10] = {'h','e','l','l','o'};
   //主要用途: 希望可以处理字符串数据 
   "hello" //一串字符 
   "hello" //字符串 
   (1).字符串 -- 按照一维字符型数组的方式存储的 
   (2).
       char ch[10] = {'h','e','l','l','o'}; //字符型数组 
       "hello"  //字符数组的形式存储的 
   (3).字符串 
       都有一个结束标志 
   (4).字符串 是一个特殊的 字符数组 
       自带了 结束标志 
       操作字符串,更关心是 有没有到达结束标志 
       而字符数组,更多的是作为了存放字符串数据的一个空间 

字符数组 和 字符串:
char ch[ ] =  {'h','e','l','l','o'};
char ch[ ] = "hello";
              'h','e','l','l','o',0, 0,0,0,0

 #include <stdio.h>

 char *gets(char *s);
 功能:
     从键盘输入一个字符串 
 参数:
     s   //表示存放字符串的空间的首地址 
 返回值:
    char * 代表存放字符串的空间的首地址
    
 int puts(const char *s);
 功能:
      往屏幕上输出一个字符串 
 参数:
   s  //表示存放字符串的空间的首地址 
 返回值:
     成功 返回非负值 
     失败 返回EOF //(-1)

数组长度: 数组能容纳的元素的个数

size_t strlen(const char *s);
功能:
    统计字符串长度 
参数:
    s  //表示存放字符串的空间的首地址 
返回值:
   表示 字符串长度 

strcpy
    //逐个字符赋值过去 
    //遇到'\0'
    //最终str2还需要有'\0'作为结束标志 --手动添加一个'\0'
    
    char *strcpy(char *dest, const char *src);
    功能:
         拷贝字符串 
         将src中的字符串拷贝到dest中 
    参数:
       src     //表示存放 源字符串的空间的首地址 
       dest //表示存放 目的字符串的空间的首地址 
    返回值:
       返回的 就是dest 
       
strcat 
char s1[20] = "hello";
char s2[20] = "world";

"helloworld"

 
思路:
   1.先定位到 目标字符串 '\0'
   2.从目标字符串 '\0'位置开始
     将源字符串中的字符 挨个 赋值过来 
   3.考虑 最后 '\0'

 char *strcat(char *dest, const char *src);
  功能:
         拼接字符串 
         将src中的字符串拼接到dest中 
    参数:
       src     //表示存放 源字符串的空间的首地址 
       dest //表示存放 目的字符串的空间的首地址 
    返回值:
       返回的 就是dest 
strcmp 
   "hello"
   "world"
   
   
   字符串比较的规则与其他语言中的规则相同,
   即
   对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),
   直到出现
      不同的字符或遇到'\0'为止。
   如全部字符相同,则认为相等;
   若出现不相同的字符,
      则以第一个不相同的字符的比较结果为准
      
   "hello" //
   "hello"  
    
    找到不同的字符 或者 是 '\0'

    判断 比较结果 
    看 最后停的位置上的两个字符的关系

(点关注,不迷路,每日更新!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值