【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )
2023-06-13 09:17:41 时间
文章目录
C 字符串表示方式
C 字符串表示方法 :
- 1.字符数组表示方法 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 ‘\0’ 结尾;
// ① 字符数组 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 '\0' 结尾;
char string_c[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
- 2.指针表示方法 : 使用指针形式表示字符串 , 默认末尾增加 ‘\0’ ;
// ② 指针 : 使用指针形式表示字符串 , 默认末尾增加 '\0' ;
char* string_c_p = "hello";
- 3.字符串拼接打印 :
- ① 打印字符串 , cout 后的 << 后可以打印 字符串 , 也可以打印变量 ;
- ② 字符串拼接格式 : 输出 cout << 字符串或变量1 << 字符串或变量2 … << endl 可以拼接 输出信息
//字符串打印 :
// ① 打印字符串 , cout 后的 << 后可以打印 字符串 , 也可以打印变量
// ② 输出 cout << 字符串或变量1 << 字符串或变量2 ... << endl 可以拼接 输出信息
cout << "string_c : " << string_c << endl;
cout << "string_c_p : " << string_c_p << endl;
- 4.代码 :
//3. 字符串使用
//C 字符串 表示方法 :
// ① 字符数组 : 本质是 字符 数组 char[] , 这里注意字符数组要以 NULL 或 '\0' 结尾;
char string_c[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
// ② 指针 : 使用指针形式表示字符串 , 默认末尾增加 '\0' ;
char* string_c_p = "hello";
//字符串打印 :
// ① 打印字符串 , cout 后的 << 后可以打印 字符串 , 也可以打印变量
// ② 输出 cout << 字符串或变量1 << 字符串或变量2 ... << endl 可以拼接 输出信息
cout << "string_c : " << string_c << endl;
cout << "string_c_p : " << string_c_p << endl;
- 5.执行结果 :
string_c : hello
string_c_p : hello
C 字符串 拷贝 ( strcpy )
C 字符串 拷贝 方法 ( strcpy ) :
- 1.方法参数 : strcpy 方法是拷贝字符串的方法 , 第一个参数是目标字符串 , 第二个参数是源字符串 ;
- 2.方法作用 : 将 源字符串 拷贝到 目标字符串中 ;
- 3.代码 :
//C 语言中的字符串操作
//拷贝字符串
char string_c_copy_destination[6];
char string_c_copy_source[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
// ① 参数 : strcpy 方法是拷贝字符串的方法 , 第一个参数是目标字符串 , 第二个参数是源字符串
// ② 作用 : 该方法是将 源字符串 拷贝到 目标字符串中
strcpy(string_c_copy_destination, string_c_copy_source);
// ③ 打印拷贝结果 :
cout << "string_c_copy_destination : " << string_c_copy_destination << endl;
- 4.执行结果 :
C 字符串 拼接 ( strcat )
C 字符串 拼接 ( strcat ) :
- 1.方法参数 : strcpy 方法是拼接字符串的方法 , 第一个参数是目标字符串 , 第二个参数是源字符串 ;
- 2.方法作用 : 将 源字符串 拼接到 目标字符串后面 , 组成新字符串 ;
- 3.目标字符串大小 : 目标字符串一定要注明大小 , 并且其大小要大于 两个字符串实际大小之和 ; ( 否则会报错 )
- 3.代码 :
//拼接字符串
//① 定义目标字符串 : 拼接字符串的目标字符串的大小一定要大于等于要拼接的两个字符串大小之和, 否则会报错
char string_c_cat_destination[30] = " cat dst ";
char string_c_cat_source[] = " cat src ";
//② 拼接字符串方法参数 : 第一个参数是目标字符串 , 第二个参数是源字符串
//③ 目标字符串大小 : 注意 目标字符串的 大小一定要大于 两个字符串实际大小
strcat(string_c_cat_destination, string_c_cat_source);
//④ 打印字符串拼接结果 :
cout << "string_c_cat_destination : " << string_c_cat_destination << endl;
- 4.执行结果 :
C 字符串 长度获取 ( strlen )
C 字符串 长度获取 ( strlen ) :
- 1.方法参数 : 传入要获取长度的字符串 , 可以是字符数组 , 也可以是字符指针类型 ;
- 2.方法作用 : 获取实际的字符串长度 , 即自动识别 ‘\0’ 位置 , 获取其长度 , 与所占用的内存大小无关 ;
- 3.指定字符串内存大小 :
- 内存大小 : 对于指定内存大小的字符串 , 即使其所占内存为 20 字节;
- 字符串大小 : 其实际的字符长度是 5 , 该方法获取字符串大小是按照 ‘\0’ 标志截取 ( 不包含 ‘\0’ ) ;
char string_c_len2[20] = { 'h', 'e', 'l', 'l', 'o', '\0' };
- 4.代码 :
//获取字符串长度
//① 参数 : 传入要获取的字符串 , 该长度不含 '\0' 结尾标志
//② 作用 : 获取实际的字符串长度 , 即自动识别 '\0' 位置
// 获取其长度 , 与所占用的内存大小无关
char string_c_len[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char string_c_len2[20] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char * string_c_len3 = "hello";
//① 字符数组长度 , 测量从开始到 '\0' 的长度, 不包括 '\0'
int len1 = strlen(string_c_len);
//② 指定大小的字符数组长度 , 结果不是指定的大小的值 , 获取的是实际字符串长度
int len2 = strlen(string_c_len2);
//③ 指针表示的字符串 , 其获取的大小是实际字符串大小, 不包含自动添加的 '\0'
int len3 = strlen(string_c_len3);
//④ 打印 三个字符串大小
cout << "len1 : " << len1
<< " len2 : " << len2
<< " len3 : " << len3
<< endl;
- 5.执行结果 :
C 字符串 对比 ( strcmp )
C 字符串 对比 ( strcmp ) :
- 1.方法参数 : 参数是需要比较的两个字符串 , 第一个参数 str1 , 第二个参数 str2 ;
- 2.方法作用 : str1 和 str2 两个字符串 , 从左到右 逐个对比 ASCII 码 大小 ;
- 3.返回值 :
- ① 如果 str1 等于 str2 , 返回 0;
- ② 如果 str1 > str2 , 返回值 大于 0 ;
- ③ 如果 str1 < str2 , 返回值 小于 0 ;
- 4.附一张 ASCII 表 :
- 5.代码示例 :
//字符串比较
// ① 参数说明 : 参数是需要比较的两个字符串 , 第一个参数 str1 , 第二个参数 str2
// ② 对比规则 : str1 和 str2 两个字符串 , 从左到右 逐个对比 ASCII 码 大小 ;
// a. 如果 str1 等于 str2 , 返回 0;
// b. 如果 str1 > str2 , 返回值 大于 0 ;
// c. 如果 str1 < str2 , 返回值 小于 0 ;
//定义需要比较的字符串
char* string_c_comp_1 = "Hello";
char* string_c_comp_2 = "Hello";
char* string_c_comp_3 = "hello";
// ① 两个字符串相等
int cmp_result_1_2 = strcmp(string_c_comp_1, string_c_comp_2);
// ② "Hello" 字符串 (H 对应 ASCII 72) 小于 "hello" 字符串 (h 对应 ASCII 104) , 返回值 小于 0
int cmp_result_1_3 = strcmp(string_c_comp_1, string_c_comp_3);
// ③ "hello" 字符串 (h 对应 ASCII 104) 大于 "Hello" 字符串 (H 对应 ASCII 72) , 返回值 大于 0
int cmp_result_3_1 = strcmp(string_c_comp_3, string_c_comp_1);
//输出字符串对比结果
cout << "cmp_result_1_2 : " << cmp_result_1_2
<< " cmp_result_1_3 : " << cmp_result_1_3
<< " cmp_result_3_1 : " << cmp_result_3_1
- 6.执行结果 :
cmp_result_1_2 : 0 cmp_result_1_3 : -1 cmp_result_3_1 : 1
相关文章
- 浏览器怎么打开微信客户端连接服务器,微信“请在微信客户端打开链接”怎么办?-在浏览器中打开微信链接的方法 – 河东软件园…「建议收藏」
- Python语言程序设计基础(1)—— 程序设计基本方法
- 【R语言】三种批量做T检验的方法
- 白盒测试的测试用例设计方法
- 2022-11-13:以下go语言代码中,如何获取结构体列表以及结构体内的指针方法列表?以下代码应该返回{“S1“:[“M1“,“M2“],“S2“:[],“S
- R语言卡方检验方法总结
- Science Advances:社会和健康科学中用于描述、预测和因果推理的机器学习方法
- 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )
- 【C++ 语言】线程 ( 线程创建方法 | 线程标识符 | 线程属性 | 线程属性初始化 | 线程属性销毁 | 分离线程 | 线程调度策略 | 线程优先级 | 线程等待 )
- 格从MySQL中只恢复一个表格的方法(mysql只恢复一个表)
- ABAP 快速找到第二代增强的方法(基于函数出口增强function)详解编程语言
- go语言面向对象之方法详解编程语言
- Go语言使用reflect.Type显示一个类型的方法集
- 改变Linux的默认语言:一种提升用户体验的方法(修改linux的默认语言)
- Linux中实现行匹配的方法(linux匹配行)
- 简单易懂的方法:修改Linux主机名的技巧(如何修改linux主机名)
- Redis 手动关闭快照:避免数据丢失的方法(redis关闭快照)
- MySQL中使用IN子句出现重复值问题的解决方法(mysql中in有重复值)
- 同时运行多个MySQL服务器的方法
- js刷新框架子页面的七种方法代码
- c语言swap(a,b)值交换的4种实现方法
- 用c语言实现HUP信号重启进程的方法
- php生成zip压缩文件的方法详解
- c语言调用汇编的方法
- redis数据库查找key在内存中的位置的方法