【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )(二)

简介: 【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )(二)

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.执行结果 :


image.png



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 表 :

image.png


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

image.png

目录
相关文章
|
1天前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
12 4
|
1天前
|
C语言
【C语言篇】字符和字符串以及内存函数详细介绍与模拟实现(下篇)
perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。
|
1天前
|
存储 安全 编译器
【C语言篇】字符和字符串以及内存函数的详细介绍与模拟实现(上篇)
当然可以用scanf和printf输入输出,这里在之前【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)已经讲过了,这里就不再赘述,主要介绍只针对字符的函数.
|
1月前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
14 0
|
7天前
|
存储 C语言
【C语言函数】static和extern关键字修饰
【C语言函数】static和extern关键字修饰
|
16天前
|
机器学习/深度学习 C语言
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
【8月更文挑战第5天】本篇文章用C语言采用多文件编写实现了一个基础的扫雷游戏(附源码),并讲解了关于函数递归的基础概念及其相对应的习题练习(附源码)
29 1
九/十:《初学C语言》— 扫雷游戏实现和函数递归基础
|
18天前
|
存储 编译器 程序员
八:《初学C语言》— 函数的基本概念
【8月更文挑战第3天】本篇文章详细讲解了库函数与自定义函数的区别、函数的嵌套调用及链式访问、函数的声明和定义、static和extern等基础知识
18 1
八:《初学C语言》— 函数的基本概念
|
1天前
|
编译器 程序员 C语言
【C语言篇】从零带你全面了解函数(包括隐式声明等)(下篇)
⼀般情况下,企业中我们写代码时候,代码可能⽐较多,不会将所有的代码都放在⼀个⽂件中;我们往往会根据程序的功能,将代码拆分放在多个⽂件中。
|
4天前
|
测试技术 C语言
C语言中的void函数
C语言中的void函数
|
4天前
|
存储 安全 编译器
C语言中的scanf函数
C语言中的scanf函数