| |
|
开发:
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++知识库]字符串讲解 |
目录 引言在我们的生活中,有很多一长串的字符需要集中处理,比如说姓名、省份证号,这时,我们就需要引入一个新的概念---字符串。 “hello world!\n” 这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。 字符串的定义和存储在C语言中,整形我们用int类型来开辟空间进行存储,字符类型我们又使用到了char,那么有没有一种类型可以存储字符串呢? 因为char是一个字节,只能存放一个字符,这是我们可以借助到数组,数组是在内存中开辟一块连续的存储空间来进行存储多个数据类型相同的数据元素,所以我们可以借助字符数组来进行存储字符串。
上面代码就是采用了字符数组来进行存储。 字符串的打印%s方式进行打印%d是整型十进制输入输出格式,%f打印单精度浮点数,%lf打印双精度浮点数,%c打印单个字符,%x打印十六进制数字,那么,%s则是打印字符串的格式
循环方式进行打印
字符串的长度在C语言中。求字符串的长度需要借助到一个strlen()的函数,需要引用string.h的头文件。
最终输出的结果是12,注意空格也算一个字符。 那么,如果字符串的定义采用下面的方式定义呢?
我们此时却发现,打印的结果竟然是随机值。 这是因为字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。 第一个代码在!后面隐藏了\0,当算长度时读到隐藏的\0停止计算,故而结果为12。第二个代码是数组的常规初始化,!后面并没有\0转义字符,当算长度时未读到\0,故一直往下统计直至遇到\0,因此产生的输出结果为随机值。 为了在第二个代码的基础上稍作修改,还能计算正确的长度,我们只需要在末尾加上\0的转义字符就可以了。如下代码:
字符数组的大小计算数组类型的大小我们需要借助sizeof()关键字,单位为字节。
上面代码由于字符串隐藏了\0,而\0在数组中也开辟占用了一块存储空间,所以上面代码输出的结果为13。
上面代码由于该字符数组末位没有\0,所以最后数组大小计算为12。
上面代码由于该字符数组末位有\0,所以最后数组大小计算为13。 区分sizeof()和strlen()sizeof()和strlen()二者之间并没有必然的联系,一个是C语言常见32个关键字之一,是计算类型或者变量所占内存空间的大小(单位为字节),另一个是库函数,需要引用string.h的头文件,是用来计算字符串的长度,遇到\0停止计算(结果不包含\0在内)。 下面,我通过一个代码来进行演示
通过上面代码以及注释里面的答案,可以帮助我们更好地理解。 |
|
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 5:16:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |