- 字符串的定义
数组长度/字符串空间 = 字符数量 + 1
约定: 字符串长度 = 字符数量
char str[] = "Hello world"; // or char str[12] = "Hello world";
char* str = "Hello world"; // recommend const char* const str = "Hello world";
char str[] = {'H','e','l','l','o','\0'}; // or char str[] = {'H','e','l','l','o', 0};
-
'\0'
:转义字符 表示字符串结束
'0'
:字符 表示 0
字符
注意,并非所有char []
与char*
类型的变量都为字符串
末尾若无'/0'
则不是字符串,否则为字符数组或字符型指针
- 字符串输入输出
-
输出字符串
- 使用格式字符
%s
char str[] = "Hello world"; printf("%s",str); //输出 Hello world
puts()
函数char str[] = "Hello world"; puts(str); // 换行 //输出 Hello world
- 使用格式字符
-
scanf()
中需要注意的 数组越界- 第一种方法:格式字符保留
char str[6]; scanf("%5s",str); //输入Hello,world printf("%s", str); //输出Hello
- 第二种方法:使用
scanf_s()
char str[6]; scanf_s("%s", str, 6); //输入Hello,world printf("%s", str); //输出空白,因为超过设定的长度,输入无效
- 进行修改
char str[6]; scanf_s("%5[^\n]", str); //输入rua 123 printf("%s", str); //输出rua 1
- 第一种方法:格式字符保留
-
-
写入/读取操作
char str[] = "1wwuyi"; str[0] = 'y'; puts(str);
-
关于
const
引例void word(const char a[]) //注意const常量的用法 { for (int i = 0; a[i] != 0; i++) { printf("%c", a[i]); Sleep(5); } printf("\n"); }
-
指针?
-
字符串的标识符为字符串首字符
char* str = "Hello"; printf("%c", str); //输出H
-
用指针访问字符串 见引例
-
-
指针数组 与 字符串二维数组
char* str[]
char* str1 = "rua"; char str2[] = "ywwuyi"; char* str3 = "23333"; char* a[] = {str1, str2, str3,};
char str[][n]
(n必填)char str[][10] = { "rua", "ywwuyi", "23333", }
-
入门:
#include <string.h>
-
strlen() 输入字符串 返回字符串的长度
-
strcmp() 比较两个字符串
-
strcpy() 拷贝一个字符串到另一个字符串
-
strchr() 在字符串中搜索某个指定字符
-
strstr() 在字符串中搜索某个指定字符串
-
strcat()
在字符串中搜索某个指定小猫×将B字符串接到A字符串的后边