c语言-字符串

一、字符串定义

1.字符串常量使用`双引号`, 字符常量使用`单引号`,两者区别: 双引号(表示这是字符串常量), 通常在字符串会添加一个"\0" (ASCII 码为 0),用以表示字符串结束,占用内存空间字节数为字符串长度加一,而字符常量通常占用一个字节的内存空间。
2.可以用数组存放字符串,如字符串"hello",可以表示为:
    char c[5]={'h','e','l', 'l', 'o'};
    char c[5]={"hello"};
    char c[6]="hello";
    char c[] = "hello"; // 此时c的长度自动为5

二、字符串输入输出

1.输出
    printf("%s\n", c);
2.输入
    char inString[10];
    scanf("%s", inString); // 此时inString定义长度为10, 因此输入的字符串长度应小于10,为“\0”结束位预留位置。 输入时空格表示结束, 因此不能用输入空格, 若有空格 可以分多个字符串(即字符数组)来存储。
    注: scanf需要使用变量的地址, 数组名即数组首地址,因此不需要再用&(取地址符)

三、字符串操作

c提供的常用字符串处理函数:
首先应当引入头文件"string.h"

1.字符串输出函数 puts (字符数组名),把字符数组中的字符串输出到显示器, puts(c)。 注: 字符串可以使用转移字符如"hello \n world", 可被printf取代, printf可以有不同的格式。

2.字符串输入函数gets (字符数组名),从键盘中输入一个字符串。类似scanf但不同的是,gets不以空格作为结束标志, 而仅以回车做为结束标记。

3.字符串拼接函数strcat(字符数组名1,字符数组名2),  把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\0”。本函数返回值是字符数组 1 的首地址。

4.字符串拷贝函数strcpy(字符数组名1,字符数组名2),把字符数组 2 中的字符串拷贝到字符数组 1 中。串结束标志“\0”也一同拷贝。字符数名 2,也 可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。要求数组1有足够的长度, 否则不能完成拷贝。执行时会出现异常错误

5.字符串比较函数strcmp(字符数组名1,字符数组名2),按照 ASCII 码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

6. 测字符串长度函数strlen(字符数组名) ,测字符串的实际长度(不含字符串结束标志‘\0’) 并作为函数返回值。
posted @ 2019-12-31 12:37  印前  阅读(383)  评论(0编辑  收藏  举报