黑马程序员————C语言基础 第13篇 字符串知识总结

时间:2021-04-13 00:22:18

  ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

C中比较常见的并且我容易遗忘的基础知识点,主要是字符串的相关知识。

1.字符串的初始化形式

    char name[8] = "it";

    char name2[8] = {'i', 't', '\0'};

    char name3[8] = {'i', 't', 0}; 

    char name4[8] = {'i', 't'};

注意: char name5[] = {'i', 't'};   不算是一个字符串(只能说是一个字符数组)

  2. \0的ASCII码值是0

它的作用

    1.字符串结束的标记

    2.printf("%s", name2);   会从name2这个地址开始输出字符,直到遇到\0为止

3.strlen函数

  计算字符串长度,strlen函数声明在string.h文件中

 1.计算的是字符数,并不是字数。一个汉字算作3个字符

 2.计算的字符不包括\0

 3.从某个地址开始数字符的个数,直到遇到\0为止

4.字符串数组

字符最后面没有/0.

   char name[ ] = "jack";
    
    char name1[ ] = "rose";
    
    char name2[ ] = "jim";
    
    char name3[ ] = "jake";
    
    char names[2][10]= {"jack", "rose"};
    
    //printf("%s\n", names[0]);  输出jack
    
    //printf("%c\n", names[0][3]); 输出k
    
    char names2[2][10] =
    {
        {'j', 'a', 'c', 'k', '\0'},
        {'r', 'o', 's', 't', '\0'}
    };

5.指针与字符串

  定义字符串的2种方式
 1> 利用数组
 char name[] = "itcast";
  * 特点:字符串里面的字符是可以修改的

  * 使用场合:字符串的内容需要经常修改

 2> 利用指针
  char *name = "itcast";

  * 特点:字符串其实是一个常量字符串,里面的字符是不能修改

  * 使用场合:字符串的内容不需要修改,而且这个字符串经常使用

6指针和数组

1.数组元素的访问方式

 int ages[5];

 int *p;

 p = ages;
 1> 数组名[下标]  ages[i]

 2> 指针变量名[下标] p[i]

 3> *(p + i)
 
 2.指针变量+1,地址值究竟加多少,取决于指针的类型
  int *   4

  char *  1

  double * 8

3. 指针变量p指向了数组的首元素

    p = &ages[0];

   数组名就是数组的地址,也是数组首元素的地址

      p = ages;
    
  4.指针与数组的对应关系

     p ---> &ages[0]

     p + 1 ---> &ages[1]

     p + 2 ---> &ages[2]

     p + i ---> &ages[i]