| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> c语言—常见字符串函数与sizeof详解 -> 正文阅读 |
|
[C++知识库]c语言—常见字符串函数与sizeof详解 |
1.sizeof使用 a.代码1
解释: (1)sizeof是计算大小的(单位为字节),?sizeof后面可以跟变量,类型(跟类型时一定要将类型括起来),地址(因为是32位机器,所以地址大小为4字节,如果是64位,结果就是8字节),数组名。 (2)sizeof也可以计算数组的空间的个数。 2.strlen函数 a.代码1
解释: (1)strlen函数是计算'\0'前的元素个数,此时arr1数组有4个空间,有'\0','\0'前面有3个元素。 (2)此时arr2数组有3个空间,没有'\0',所以就产生了一个随机数。 (3)此时arr3数组有4个空间,前面3个空间放的是"abc",最后一个空间系统添加了一个'\0'。 (4)指针变量指向字符串"abc"等价与"abc\0"。 注意: (1)strlen(包括strcmp strcpy strcat等)函数是用于字符串的,而不是整型数组的。 (2)strlen函数是计算'\0'前的字符个数,即有效字符的个数。 b.代码2
解释: (1)strlen的返回值是无符号的整型(unsigned int),所以(strlen(str1) - strlen(str2))最终的值也是无符号的,即>=0。 注意: (1)一定要引头文件<string.h>,不然结果就只有一个"aa" 3.sizeof与strlen函数对比 a.代码1
解释: (1)sizeof是计算大小的,strlen是计算'\0'前的字符个数的。? 4.strcmp函数 a.代码1
解释: (1)两个字符串比较,就是字符逐个比较,直到发现不匹配为止。 注意: (1)两个字符串进行比较时,如果arr1等于arr2,strcmp返回零。arr1小于arr2,strcmp返回一个小于零的数(不一定是-1)。arr1大于arr2,strcmp返回一个大于零的数(不一定是1)。 (2)进行两个字符串比较时,一定要有'\0'。 b.代码2
? 注意: (1)不要把代码解读成arr1与arr2相等,结果为真,执行if语句。此时的strcmp的返回值是0,所以执行else语句。 5.strncmp函数 a.代码1
解释: (1)选择需要比较的个数,返回值和strcmp一样。
6.strcpy函数 a.代码1
?解释: (1)
将src字符串的副本(所以src是不能改变的),拷贝到到dest(所以dest是可以改变的),返回dest的地址?。 (2)"de"字符串后面是有'\0'的,当再次读取dest时,字符'c'是无效字符。 (3)拷贝后的结果 注意: (1)数组dest是可以改变的,一定不是字符串常量,即char*dest="abc"; (2)src一定要以'\0'结尾,不然程序会崩溃的。 (3)保证dest的空间足以容纳拷贝过来的字符串,不然会导致溢出。 b.代码2
? ?解释: (1)dest的空间只有4个,拷贝过去的字符有5个("efgh"=="efgh\0"),即使最终的结果能打印出来,但是dest周围的栈空间破坏了。 7.strncpy函数 a.代码1
解释: (1)
strncpy函数最后一个参数(count)是控制拷贝到dest里面的字符个数。当count大于src字符串个数时,数组dest将用'\0'填充到count。 b.代码2
解释: (1)src的字符个数大于count ,就拷贝count个字符到dest。 8.strcat函数 a.代码1
?解释: (1)将字符串"def"(等价于"def\0")追加到dest后面。 (2)返回值为字符数组dest的地址。 注意: (1)保证dest剩余的空间,足以容纳下追加的字符串,否则会出现溢出的情况。 (2)字符数组dest可以改变,src指向的字符串不可以改变。 9.strncat函数 a.代码1
解释: (1)在dest后面追加2个字符,即"de"?("de"后面有一个'\0',作为结束标志)。 (2)返回值为数组dest的地址。 注意: (1)保证dest剩余的空间,足以容纳下追加的字符,否则会出现溢出的情况。 (2)字符数组dest可以改变,src指向的字符串不可以改变。 ? ? ?字符串函数与sizeof的使用今天就分享到这里了,如果对你有帮助的话,可以给个关注,随便给个赞。 ?? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:51:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |