《实用C++》第21课 使用字符串处理函数操作字符数组

本文转载自:VC驿站

https://www.cctry.com/thread-289275-1-1.html

1、目的:
之前也跟大家说过字符串在以后的编程过程中会非常频繁的用到,所以C/C++语言为了提升开发效率,本身提供了很多对字符串进行操作的函数,不用大家自己再实现。他们已经成为C/C++的标准,所以任何一个支持C/C++标准的编译器都支持这些函数的。他们被包含在 string.h 或 string 头文件中。所以要在代码中添加:
#include <string.h> //C语法
或者
#include <string> //C++语法

2、字符串连接函数:strcat
该函数的定义原型为:
char * strcat (char destination[], const char source[]);
相关的说明在这里:http://www.cplusplus.com/reference/cstring/strcat/
其作用就是将第二个参数的字符串连接到第一个参数的字符串结尾,所以要保证第一个参数的字符数组大小够用,能装的下第1个和第2个字符串的总长度才行,不然就会发生内存溢出啦!
返回值是第一个字符串的首地址,关于地址这个话题在下几节课会给大家讲解的。

代码举例:
char des[50] = "hello "; //保证des的空间足够大
char src[] = "cctry.com";
strcat(des, src);
cout << "des = " << des << endl;

问大家个问题,这里面des字符数组的大小最小能定义成多少?15?16?17?为什么呢?

3、字符串拷贝函数:strcpy
该函数的定义原型为:
char * strcpy( char destination[], const char source[]);
相关的说明在这里:http://www.cplusplus.com/reference/cstring/strcpy/
其作用就是将第2个参数的字符串拷贝到第一个参数的字符数组中,所以要保证第1个参数的字符数组大小够用。注意:第2个参数的结束符 '\0' 也会拷贝过去哦。
返回值是第一个字符串的首地址,关于地址这个话题在下几节课会给大家讲解的。

代码举例:
char des[50] = {0};
char src[] = "cctry.com";
strcpy(des, src);
cout << "des = " << des << endl;
问大家个问题,这里面des字符数组的大小最小能定义成多少?为什么呢?

4、字符串比较函数:strcmp
该函数的定义原型为:
int strcmp (const char str1[], const char str2[]);
相关的说明在这里:http://www.cplusplus.com/reference/cstring/strcmp/
其作用就是对比第1个和第2个参数的字符数组字符串,逐个字母比对,直到字符串结束。即比较每个字母的ASCII码值。
当第1个参数大于第2个参数,返回 > 0 的数,当第1个参数小于第2个参数,返回 < 0 的数,当第1个参数和第2个参数相等,返回0

代码举例:
char des[50] = "hello";
char src[] = "cctry.com";
int iret = strcmp(des, src);
cout << "iret = " << iret << endl;

5、字符串求长度函数:strlen
该函数的定义原型为:
size_t strlen (const char str[]);
相关说明在这里:http://www.cplusplus.com/reference/cstring/strlen/
其作用就是求得参数字符串的长度,通过返回值返回。

代码举例:
char des[50] = "hello";
int len = strlen(des);
cout << "len = " << len << endl;

这里面 len 的值是5,而不是50,为什么呢?50是des中总共能容得下的字符的个数,而不是实际字符串的长度。
所以这里面一个字符串占用的字节数和字符串的长度是两个不同的概念。

6、字符串的长度和占用字节数的区别:
char des[50] = "hello";
这个字符数组里面存的是一个字符串 hello,那么这个des字符数组所包含的字符串长度是:strlen(des)
那么,这个字符数组所占用的字节数呢?怎么求?sizeof(des)

int des[50];
sizeof(des) = ?

7、小作业:
不用系统提供的strcat函数,自己使用字符数组编写一个函数,实现两个字符串的连接功能。

第21课视频教程下载地址:

https://www.cctry.com/thread-289275-1-1.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值