第6章 字符串(上)——C风格字符串
6.1 C-strings(C 风格字符串)
C风格字符串: 字符数组是元素为字符型的数组,字符串是以空字符'\0' 作为数组最后一个元素的字符数组。
如果指定了数组的大小,而字符串的长度又小于数组大小,那么这个数组其余的元素都将被初始化为'\0'。
为了在一个字符串中包含一个双引号,必须在这个双引号的前面加上一个反斜杠(\)
6.2 C-string input and output(C 风格字符串的输入和输出)
!!!字符数组的大小必须比字符串中的字符数多1
getline( )
为了允许输入空白字符(空格、回车、Tab),可以使用函数getline( )。
换行符'\n'称为定界符,表示从输入流cin读取字符到数组的结束。
'\n' 被称为定界符,若定界符被省略,则将其假定为'\n'。 自动在其末尾添加'\0'。
6.3 Accessing individual characters of a C-string(访问C风格字符串中的单个字符)
可以通过下标来访问C 风格字符串的每个字符。
6.4 C-string functions(C 风格字符串函数)
C++继承了C风格字符串函数库,使用要写明头文件
#include<cstring>
(1)找到c字符串的长度 strlen(str):返回一个C 风格字符串str中字符的个数,不包含'\0'
(2)复制C风格字符串strcpy( destination, source ) :source 字符串中的内容被复制到destination 字符串中。
Remark:
source字符串必须以'\0' 结束;( getline()默认定界符为‘\n’ )
destination 字符串有足够的空间来存储要复制的字符串内容。
(3)字符串拼接strcat( str1, str2 ): 把字符串str2 拼接到字符串str1 的后面。
Remark:
str1要有足够的空间来存储拼接后的字符串。
(4)比较C 风格字符串strcmp( str1, str2 ) :比较两个以'\0' 为结束的字符串str1和str2的大小。
函数返回值:负数 str1 < str2;零str1 = str2;正数istr1 > str2.
(5)其他:
①strncat( str1, str2, n )
将C风格字符串str2的前n个字符添加到C风格字符串str1的末尾。
②strncmp( str1, str2, n )
与函数 strcmp(str1, str2)类似,区别仅在于,strncmp( str1, str2, n )最多比较n个字符。
③strncpy( str1, str2, n )
将字符串str2的前n个字符复制到字符串str1中。
要注意:这些都是继承的C语言的函数,str1的定义形式应该是char str[size];而不能是string str;
Converting numeric C-strings to numbers(数值C风格字符串向数值的转换)
数字C风格字符串的存储: ASCII 表示 “123” 整数值的存储: 二进制 123
atoi() : C风格字符串到整数(遇到小数点时就会停止转换)
atol() : C风格字符串到长整数
atof() : C风格字符串到双精度浮点(接受小数点,因为它可以作为小数的一部分。)
Remark:
忽略字符间的空格 在遇到第一个不能作为一个数值部分的字符时,停止转换。
函数参考(小结)

第6章 字符串(上)——C风格字符串的更多相关文章
- C风格字符串与C++风格字符串
C风格字符串与C++风格字符串 C风格字符串:对字符串进行操作的 C 函数定义在头文件<cstring>中: 1. 字符串定义:char* result: 2. 字符串的最后一个字符是nu ...
- string字符串转C风格字符串 进而转换为数字
要求如题 头文件stdlib.h中有一个函数atof() 可以将字符串转化为双精度浮点数(double) double atof(const char *nptr); 此字符串为C风格字符串,因此需要 ...
- C++ 标准头文件与C头文件区别与联系以及C风格字符串
1.cstdlib是C++里面的一个常用头文件, 等价于C中的<stdlib.h>. 2.一般一个带“.h” 扩展名的库文件,比如iostream.h.这是延续C语言的,为了兼容C.在新标 ...
- String与C风格字符串转换
String字符串转换为C风格字符串需要利用string类的成员函数c_str().而C风格字符串转换转换为string字符串可以直接利用运算符=.首先介绍c_str()函数原型: const val ...
- c风格字符串,字符串字面值,c++字符串
C风格字符串:本质上就是以空字符null为结束符的数组 可以简单的理解为:有'\0'的是c风格字符串,无'\0'的是普通字符数组 字符串字面值:是一串常量字符,字符串字面值常量用双引号括起来的零个或多 ...
- C风格字符串和C++ string 对象赋值操作的性能比较
<<C++ Primer>> 第四版 Exercise Section 4.3.1 部分Exercise 4.2.9 习题如下: 在自己本机执行如下程序,记录程序执行时间: # ...
- c风格字符串
1.字符数组截取 有当然有了,应均包含在<string.h>中. 有strncpy,strncat.可以帮你从任何位置,取得任意合法长度的字符串. 用法基本同strcpy,strcat. ...
- 获取UILabel上最后一个字符串的位置。获取文字长度和高度,自动换行
//行的高度. -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPat ...
- c风格字符串函数
十一.C 风格字符串 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat( ...
随机推荐
- 《头号玩家》AI电影调研报告(四)
五. 现实中对于技术的实现 1.自由变身 电影中,主人公借助"魔幻眼镜"让自己快速变成另一个人的模样,现实中我们一样也能做到! 在今年游戏开发者大会(GDC)上,一个名为" ...
- TINY语言采用递归下降分析法编写语法分析程序
目录 自顶向下分析方法 TINY文法 消左提左.构造first follow 基本思想 python构造源码 运行结果 参考来源:聊聊编译原理(二) - 语法分析 自顶向下分析方法 自顶向下分析方法: ...
- Java学习day15
File是文件和目录路径名的抽象表示 文件和目录可以通过File封装成对象 对于File而言,封装的不是一个真正存在的文件,只是一个路径名,它可以存在,也可以不存在,要通过后续操作把路径的内容转换为具 ...
- gh-ost使用问题记录
因为 pt-osc 对数据库性能影响较大,且容易造成死锁问题,目前我们在线更改表结构都使用 gh-ost 工具进行修改,这里记录一下使用 gh-ost 过程中的问题,以作记录:首先先复习一下gh-os ...
- 前端性能优化之js,css调用优化
规则1:减少HTTP请求 把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求.从而减少从客户端向服务器端的请求数. 规则3:添加Expires头 用http ...
- switch 和 if else if else 有什么区别
1. 一般情况下,它们两个语句可以相互替换 2. switch..case语句通常处理case为比较确定值的情况,而if...else...语句更加灵活,常用于范围判断(大于.等于某个范围) 3. ...
- Android四大组件——Activity——Activity之间通信上
Activity之间的跳转有显式意图和隐式意图两种. 显式意图(显式Intent): //创建一个Intent对象,明确Intent跳转时的源Activity和目标Activity.参数一为当前Act ...
- GeoServer style中文乱码解决方法
在说明这个问题之前,有三点需要明确: 一是创建New style时,网页中文本框内的内容才是最终会应用到GeoServer的sld内容,这与本地sld文件没有关系. 二是xml的encoding定义的 ...
- python学习Day21
目录 今日内容详细 作业讲解 os模块 知识点进修 创建目录(文件夹) 删除目录(文件夹) 查看某个路径下所有的文件名称(文件.文件夹) 删除文件.重命名文件 获取当前路径.切换路径 软件开发目录规范 ...
- Linux网络重点知识总结性梳理
一个执着于技术的公众号 1 OSI七层模型 层次 说明 功能/协议 应用层 应用程序及接口 提供应用程序的接口:FTP telnet http pop3等 表示层 对数据进行转换.加密和压缩 将上层的 ...