文章目录

  • C 字符串表示方式
  • C 字符串 拷贝 ( strcpy )
  • C 字符串 拼接 ( strcat )
  • C 字符串 长度获取 ( strlen )
  • C 字符串 对比 ( strcmp )

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) , 返回值 小于 0int cmp_result_1_3 = strcmp(string_c_comp_1, string_c_comp_3);// ③ "hello" 字符串 (h 对应 ASCII 104) 大于 "Hello" 字符串 (H 对应 ASCII 72) , 返回值 大于 0int 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


【C 语言】C 字符串 ( 表示方法 | strcpy | strcat | strlen | strcmp )相关推荐

  1. C语言编写字符串拷贝(strcpy)函数详解以及assert函数

    目录 一.strcpy函数 原型声明 功能 说明 代码及运行结果 二.自己编写strcpy函数 代码一及运行结果 代码二(改进)及运行结果 代码三(进一步改进)及assert函数 在这里解释一下什么是 ...

  2. C/C++中strlen(),strcpy(),strcat()以及strcmp()的代码实现--学习笔记

    以下代码是自己学习过程中通过借鉴加上自己的理解编写出的代码已经在VC++2008版本上调试通过,主函数因为很简单所以没有附上. 1. strlen() int my_strlen(char *str) ...

  3. C语言 | 复制字符串 不用strcpy

    例69:C语言编写一个程序,将字符数组str2中的全部字符复制到字符数组str1中,要求不使用strcpy函数. 解析:复制时「\0」也要复制过去,「\0」后面的字符不复制 . 源代码演示: #inc ...

  4. C语言之字符串函数一

    C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串或字符数组中,字符串常量适用于那些对它不做修改的字符串函数. 求字符串长度: 1:strlen函数:si ...

  5. C语言里字符串的解析

    根据给定的字符串,按照一定规则解析字符串 转自:http://www.cnblogs.com/yi-meng/p/3620244.html 函数名称:   strtok  函数原型:   char * ...

  6. C语言字符串库函数详解模拟实现(strlen、strcpy、strcat、strcmp)+字符操作函数+字符转换函数

    字符串库函数详解 一.无字符串长度限制的字符串函数 1. strlen 计算字符串长度函数 2. strcpy 字符串拷贝函数 3. strcat 字符串追加函数 4. strcmp 字符串比较函数 ...

  7. 《C语言杂记》理解字符串处理函数 strlen() strcpy() strcat() strcmp()

    在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度.拷贝字符串.比较字符串等:当然现在的C库中为我们提供了很多字符串处理函数.熟练的运用这些函数,可以减少编程工作量,这里介绍几 ...

  8. C语言常用字符串操作函数大全详解(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等)

    参考:string.h中常用字符串操作函数说明(strstr,strtok,strrchr,strcat,strcmp,strcpy,strerror,strspn,strchr等) 作者:一只青木呀 ...

  9. C语言之字符串探究(三):字符串库函数操作——strlen、strcat、strcpy、strcmp

    相关博文:C++之char和string字符串类探究 相关博文:C语言之数组探究(一):定义.大小.初始化.访问和三要素 相关博文:C语言之字符串探究(一):字符串与字符数组 相关博文:C语言之字符串 ...

最新文章

  1. 在面向数据流的设计方法中,一般把数据流图中的数据流划分为 (16) 两种。 答案:C
  2. 购物搜索引擎架构的变与不变——淘宝网曲琳
  3. 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?...
  4. stl list(转)
  5. R语言应用实战系列(六)-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)
  6. 08.suggester02term_suggester
  7. 文字抖动_如何用PS制作故障风文字效果
  8. Cenos 7修改时区的方法
  9. Windows学习总结(5)——【IIS建站】Windows10怎么打开站点服务?
  10. SpingBoot —— RestTemplate的配置
  11. 迄今以来在硅谷的最大押注:摩根大通雇超千人专注金融科技
  12. 华为OJ 扑克牌大小
  13. 模拟电路与数字电路基础知识及实训QY-DG760A
  14. 字符自编车牌号c语言,自编车牌号码大全 2018年自编车牌号技巧
  15. 用pdftocairo将PDF图片转成svg矢量图
  16. PR常见问题:pr导入素材没有音轨怎么办
  17. 万有引力的意思_万有引力的本质是什么?
  18. 如何把网站从万网转到百度的服务器,百度域名服务上线“域名转入”功能 附转入教程...
  19. 渲云渲染农场怎么样?云渲染价格便宜吗?
  20. 关于提词器的知识都在这了

热门文章

  1. 菜鸟requireJS教程---2、基本知识
  2. LeetCode 213. 打家劫舍 II
  3. 关于js里的document.compatmode
  4. vue-cli启动本地服务,局域网下通过ip访问不到的原因
  5. iOS学习笔记---oc语言第八天
  6. 数据备份基础之备份类型
  7. select count
  8. R语言实现多线性回归模型预测时间序列数据 MLR models in R
  9. HDU 6143 Killer Names (组合数学+DP)
  10. ZOJ 38727(贪心)