《C语言参悟之旅》-读书笔记(五)

来源:互联网 发布:js如何获取鼠标的位置 编辑:程序博客网 时间:2024/05/17 17:39
                                                            第六章    数组和字符串

 Ps:将同种类型数据进行有序组织以便于管理

一、一维数组

        类型说明符   数组名[ 常量表达式 ];

     1.   数组在定义的时候,数组的大小一定要确定:

 

           

        这样是错误的!

        但在访问数组元素的时候可以是数值也可以是是表达式:

          

  2. 初始化            

   

3.以数组作为参数

                    

   注:关键字const指出所声明的输入参数,由于我们传递的是引用(地址),在函数体中修改该参数值时,原数组会随之改变,因此使用关键字const来限制数组不被其他函数所修改是一种很好的编程风格,能够防止意外修改的发生

4.函数返回数组的方法:

  1)调用函数时,直接传的引用,函数结束后,结果自然而然就是处理后的数组

  2) 让函数返回一个指针        

二、多维数组(主要是二维)

1.从一维到二维

    就是一维数组里的每个元素本身就是一个一维数组

2.二维数组的初始化

     

三、字符数组

1.字符数组的初始化

   

2.常用的几个字符串处理函数:

   1)strlwr( ) 将字符串中出现的大写字符改写成小写形式,其它字符不变

         extern  char *  strlwr(  char * s );

     返回值:指向字符串s的指针

   2)strupr( )将字符串中出现的小写字符改写成大写形式,其他字符不变

        extern  char *   strupr(  char *s );

    返回值;指向字符串s的指针

   3)  strcmp( )实现字符串的比较功能

       extern strcmp(char * s1, char * s2 )

     返回值:s1 > s2  返回值大于0   ,s1 = s2 返回值 为0, s1<s2 返回值小于0;

注意:不能简单地if(s1 == s2),必须要通过函数的调用才能实现字符串的比较

  4)strlen()获得字符串长度j

     extern int strlen(char * s );

  5)将两个字符数组中的字符串连接起来 

    extern char * strcat(char *dest , char * src);

    说明: 函数把指针src所指向的字符串添加到dest结尾处,覆盖dest结尾处的' \0 ',并在整个字符的末尾添加 '\0',src和dest所指内存区域不可重叠且dest必须要有足够的空间来容纳src的字符串。

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

 6)strcpy( )字符复制函数

         extern char * strcpy(char * dest , char * src)

      说明:把指针src所指向的由'\0'结束的字符串复制到dest所指的字符数组中

  返回值:指向dest的指针

         strcpy(dest, "hello")也是可以的  dest要以数组名的形式出现,当src可以是字符数组名,也可以是一个字符串常量                                                               

                                                           

 7)strncpy( ) 

      char * strncpy (char * dest, char * src, unsigned  int n);

   说明:

            将字符串中最多n个字符复制到字符数组dest中,且在复制之前,dest都要被初始化为 ‘\0’,因为strncpy不会自动将' \0 '添加到目标字符串后面,才能保证答应成有意义的字符串

           如果dest所指向的字符串的长度 >  n > src所指向的字符串的长度 ,正常复制

           如果n的长度小于src所指向的字符串的长度,则发生截断

           如果n的长度大于dest所指向字符串的长度,会报错   

  返回值:dest的指针

原创粉丝点击