C语言(8)数组(iii)

字符串函数:

 头文件: <string.h>

字符串长度:

 size_t strlen(const char *s);
 功能:  
     计算字符串长度 
 参数:
    s //表示需要一个指针
      可以给的参数形式
    a.数组名 
    b.字符串常量 
 返回值:
     返回字符串长度
        

注意:

char s1[10];
gets(s1);
char s2[10];
s2 = s1; //字符串不能操作  数组不能整体赋值 

字符串复制:

char * strcpy(char *dest, const char *src);
功能:
   复制字符串
   将src中字符串,复制到dest 
参数:
  src   // 表示原字符串 
          可以给的实参形式:
          a.一维字符数组名
          b.字符串常量           
  dest  // 表示目的字符串
         可以给的实参形式:
          一维字符数组名

字符串拼接:

 char *strcat(char *dest, const char *src);
   功能:
       拼接字符串 
   参数:
      dest  //目的字符串 
            可以使用的实参形式
            一维字符型数组名 
      src   //源字符串 
             可以使用的实参形式
            a.一维字符型数组名  
            b.字符串常量 
   

字符串比较:

 字符串 比较规则 

字符串比较的规则与其他语言中的规则相同,
即对两个字符串自左至右逐个字符相比(按 ASCII 码值大小比较),
直到出现不同的字符或遇到'\0' 为止。
如全部字符相同,则认为相等;
若出现不相同的字符,则以第1个不相同的字符的比较结果为准。 

比较的结束的条件:
s1[i]!=s2[i] || s1[i]=='\0' || s2[i] == '\0'

只看,结束时,s1 最后一个字符 和 s2最后一个字符 之间的大小关系 
"hello"
"help"
-----------
"hello"
"hell"  
----------------
"hello"
"hello"

输入两个字符串,判断大小关系 

 int strcmp(const char *s1, const char *s2);
 功能:
     比较字符串大小 
 参数:
  s1  //字符串 
  s2  //字符串 
     数组名 
     字符串常量 
     
返回值: //最后 停的位置上字符的差值 来反映大小 
  s1 > s2  // >0  1 
  s1 == s2 // 0 
  s1 < s2  // <0  -1

  
字符串相关函数:

1.gets
2.puts 
3.strlen 
4.strcpy / strncpy
5.strcat / strncat 
6.strcmp / strncmp 
 

二维数组:


   类型说明符 数组名[常量表达式][常量表达式]
     (1)                 (2)            (3)           (4)
     
     
     (1) 类型说明符 --- 用来说明数组中存储数据的类型 //
     (2) 数组名     --- 标识符 
     (3) 常量表达式 --- 行 --多少行
     (4) 常量表达式 --- 列 --多少列 
     
     
eg:
   int a[3][4]; //表示说,定义了一个包含有3行 4列 总共12个 int型元素的二维数组 
                


数组初始化:

  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}};//全部初始化

赋值:

  循环 
  scanf输入值 
  
数组元素的引用:
  数组名 [行][列];
  
    0   1   2   3
  +---+---+---+---+
 0| 1   2   3   4 
 1| 5   6   7   8
 2| 9  10  11  12 
 

 二维数组的本质:

 int a[3][4]:

 int a[4]; //一维数组 
             //数组也是一种数据类型 
             //int[4]
           
 
  类型说明符 数组名[常量表达式];
    int[4]    a    [3];   
    
    int[4] a[3]; // 一维数组 
                 // 这个一维数组的元素 又一个一维数组类型 
    

    //int[4] a[3]; //c语言不支持这样写 
    int a[3][4]; //二维数组     
                 
注意:
    1.c语言中,并不存在真正的二维数组,都是用一维数组模拟的。
    2.二维数组的本质
      实际上 一维数组类型的一维数组 
     //数组的数组        
    3.二维数组数据存储时,
      按行优先存储 

二维字符型数组:

  char s[3][4]; //批量的处理字符串 
  //3行4列 
  一维字符型数组 --- 存储字符串数据  
  
  char[4] a[3]; //可以看作一维数组
  
  
  char s[3][10] = {{"hello"},{"world"},{"english"}};
  //初始化 
  char s[3][10] = {"hello","world","english"};
  
  
  //输入字符串 
  
  gets(s[0]); //s[0] 就是第0行 这个一维字符型数组的数组名 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值