C语言---初识字符串

1.关于字符数组和字符串的区别:(字符串以0或'\0'结尾)

字符数组:

#include <stdio.h>

int main()
{
   /*  Write C code in this online editor and run it. */
    char a[]={'h','e'};
    int i;
    for(i=0;i<sizeof(a)/sizeof(a[0]);i++){
        printf("%c\n",a[i]);
    }
   
   return 0;
}

字符串:

#include <stdio.h>

int main()
{
   /*  Write C code in this online editor and run it. */
    char a[]={'h','e','\0'};
    int i;
    for(i=0;i<sizeof(a)/sizeof(a[0]);i++){
        printf("%c\n",a[i]);
    }
   
   return 0;
}

0用来标志字符串的结束,但它并不是这个字符串的一部分,所以计算字符串长度的时候不会计算进去

字符串以数组的形式存在,以数组或指针的形式访问(更多的是以指针的形式)

string.h里有很多处理字符串的函数

2.字符串常量:

”hello“例如这种被双引号括起来的就是字符串,这个数组长度是6,因为结尾有表示结束的0

两个相邻的字符串会自动连接起来

3.C语言的字符串是以字符数组的形态存在的

1)不能用运算符对字符串做运算

2)  通过数组的方式可以遍历字符串

4.唯一特殊的地方是可以用双引号这种字面量来初始化数组

5.字符串变量的初始化的方法

char *str="hello";

char word[]="hello";

char line[10]="hello";  数组容量为10,字符串大小为6

6.指针还是数组?

char* s="hello";===========>s为一个指针,初始化指向一个字符串常量

              由于这个常量所在的地方,所以实际上s是const char* s,但是由于历史原因,可以不带const

              只能读不能写

如果要修改字符串,应该用数组=========>char s[]="hello";

如果要构造一个字符串====>数组

如果要处理一个字符串====>指针

 

posted @ 2023-04-18 21:29  周周周777  阅读(96)  评论(0)    收藏  举报