【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

目录
相关文章
|
5月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
317 15
|
12月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
502 10
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
665 4
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
182 2
|
3月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
985 0
|
11月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
589 23
|
10月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的函数
本文介绍C语言函数:函数是程序模块化的工具,由函数头和函数体组成,涵盖定义、调用、参数传递及声明等内容。值传递确保实参不受影响,函数声明增强代码可读性。君志所向,一往无前!
376 1
一文彻底搞清楚C语言的函数
|
11月前
|
算法 C语言
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
514 15
【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
|
11月前
|
C语言
【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
242 24
|
11月前
|
存储 C语言
【C语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
562 16