数组

一 。数组的三个特点:

                               有序数据的集合

                               空间是连续的

                               类型是一致的

二。 数组定义的时候, 后面有赋值的时候,[]里可以不用写数字, 否则必须写常量或常量表达式

        int a[10]; a[10] = {0};// 这样初始化是错误的

       在初始化的时候,int补 0, char 补 '/0'

 

三。 冒泡的第二个for 循环要写正确; 冒泡始终是从第 0 个元素开始的

        多维数组以数的方式理解

四: int  array[10] = {0}  //此句是给array[0]---array[9] 都赋值为0

        char  str[10] = {'  '} //此句是只给第一个元素即str[0]赋值为空格

五 :

        char *p = NULL;

        char   str[10] = {'  '};

           

        gets(str);

        p = str;

        printf("%s",  p);

  strtok :

 

      原型: char *strtok(char *s1, const char *s2)

       该函数将s1中首次出现s2中字符的位置置为NULL,因此会破坏s1字符串。该函数一般用于分解s1字符串为用特定分 隔符分隔的多个字符串,s2一般设置为s1中的分隔字符,比如空格,逗号等,例如将一条自然英文语句分解为单词。

      

       for (t = strtok(a, b); t != NULL; t = strtok(NULL, b))  //a为要查的字符串, b为分隔符串

    b可初始化   :  char b[4] = {" ,."}  或

                          char b[4]= {' ', ',' '.','/0'};

                    //请注意'/0'不能缺少, 缺少后就成为字符数组了,此函数要求分隔符必须为字符串

      

 

 七  重要函数

    1. strcat:字符串连接,将src连接到dest的尾部, 看'/0'

              属于:     (string.h)

              原型:  char *strcat(char *dest, const char *src)

              返回值: 指向dest的指针

            

            

 

    2.strcmp  / strcpy 

              属于:     (string.h) :看'/0'的, 即当找到'/0'就停止, 认为字符串结束了

              原型:int strcmp(char *str1,char *str2)

              返回值:小于0:str1<str2,等于0:str1=str2,大于0:str1>str2

                     

             原型: char *strcpy(char *dest, const char *src)

            返回值: 指向dest的指针

   

    3.  strncpy / strncmp    属于:     (string.h)   :不看'/0'的

          1>.char *strncpy(char *dest, const char *src,int count):

            作用:将字符串src中的count个字符拷贝到字符串dest中去

            返回值: 返回指向dest的指针

          2>、 int strncmp(char *str1,char *str2,int count):

                对str1和str2中的前count个字符按字典顺序比较

 

             返回值:  小于0:str1<str2,等于0:str1=str2,大于0:str1>str2

     

   

     以上的strcpy , strcmp, strncmp,  strncpy 的只适用于字符型数组

 4.  memcpy    (string.h | mem.h)  //这是从内存中拷贝,适用于任何类型

     原型:void *memcpy(void *dest, const void *src, size_t n)

             src 源字符串,n 拷贝的最大长度

     返回值: 指向dest的指针

 

   example :

          int a[10] = {1, 2 ,3, 4, 5 , 6,  7 , 8 , 9 , 10};

          int b[10] = {0};

         

          memcpy(b, a, sizeof(int) * 10);  

5  。strlen : 得到字符串长度

       属于: string.h

       原型:  int strlen(const char *s)     //  s 待求长度的字符串指针  

       返回值: 字符串的长度

 

6. sizeof

 

 

example  :

     char  a[10] = {0}:  sizeof(a) = 10, strlen(a) = 0 //strlen 是看'/0'的,在此 第0个元素就是'/0',故长度为0

     char  a[10] = {'0'}: sizeof(a) = 10, strlen(a) = 1

     char  s[10];             sizeof(a) = 10, strlen(a) = 随机数

    

       

 

 

八  。 补充

 

  int  a[3][5]    //此时a中 有 三个元素  , 且a为  int *型的   但集合中有15 个元素

  int   b[3]         //此时a中 有 三个元素  , 且a为  int *型的   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值