11.30C语言学习笔记(字符串)

11.30C语言学习笔记(字符串)

字符串

定义

  • 文本处理的对象是字符串,描述的对象的某一特征的数据也常是字符串。(姓名,学号)
  • C语言不提供字符串的类型,利用字符数组和字符指针来结合处理字符串。

tip

空格也算字符,字符串末尾系统会不写一个空字符。

法则——字符串必须以空字符 \0 为结尾!

字符串的初始化

数据类型 字符串名 [字符串长度]={初始化的内容}

完整初始化

char ch[3]={'A','B','C'};

(若完整的初始化,可以吧长度省略)

char c1[]={'Hello World!'};

部分初始化(未初始化的位置会用空字符 \0占位)

char ch[10]={'A','B','C'};

综上,与数组的初始化异曲同工。

用字符串常量初始化

用双引号定义边界符

char chi1[14]={“programming!”} 逐字符定义系统

若在原数组增加两个字符,系统会报错(必须以空字符结尾)

二维数组的初始化

目的是存放多个字符串

char ch[4][6]={ {'a','b'},{'b','v','v','d'},{'c'},{'d','d','d','d'}};

a b \0 \0 \0 \0
b v v d \0 \0
c \0 \0 \0 \0 \0
d d d d \0 \0

指针与字符串

指针指向的是该字符串的首地址。(规则可以对标指针与数组(https://blog.csdn.net/FriedReich/article/details/121667763))

格式控制符%s在使用的时候,输入加入空格,会自动跳转到下一个字符串。

例如 char c1[],c2[],c3[];

scanf("%s,%s,%s",&c1.&c2,&c3);

若遇到终止符,顾名思义,停止输出。

char c1[]={'Hello\0World!'};

printf("%s",c1);

此时只会打印到“Hello”

几个重要的字符串函数

字符串大小的比较——逐一对应的ASCII码比较。

(空字符小于任何一个字符)

调用头文件#include<string.h>

  • puts(数组名)输出

  • gets(数组名)输入赋值(以回车换行为结束)

  • strcat(str1,str2)将字符串str2连接到str1之后(此处要注意str1的长度足够)

  • strcopy(str1,str2)将字符串str2的值拷贝到str1中(此处所需注意的同上)

  • strcmp(str1,str2)字符串大小的比较——逐一对应的ASCII码比较。

    此处的逐一比较可以对标两个数每一位数字的比较,只比较第一个不同的元素。

    str1 a b c \0
    str2 A b d \0

    此处只比较“a”与“A”之间的ASCII码大小,此时前者大于后者

  • strlen(str)用于输出一个字符串中的有效长度——可以对标 sizeof

  • strlwr(str)转换为小写字母

  • strupr(str)转换为大写字母

猜你喜欢

转载自blog.csdn.net/FriedReich/article/details/121688898