【原创】一起学C++ 之 字符串 ---------C++ primer plus(第6版)
C++ Primer Plus 第6版
字符串:是存储在内存的连续字节中的一系列字符。
C++处理字符串的方式有2种:
一、来自C语言、常被称为C-风格字符串(C-Style-string)
1)从字符数组--》字符串
存储在连续字节中的一系列字符意味着可以讲字符串存储在char数组中,其中每个字符都位于自己的数组元素中。
C-style字符串具有一种特殊的性质:以空字符结尾,空字符被写为'\0'
char dog[]={'b','e','a','u','t',' ','i','i'}; //不是一个字符串,仅仅是一个char数组!!!
char cat[]={'b','e','a','u','t','a','i','\0'}; //是一个字符串,且为一个char数组
将字符数组初始化为字符串的方法(这种字符串被称为字符串常量或字符串字面值):
char bird[]="Mr. Cheeps";
char fish="Bubbles";
用双引号括起的字符串隐式地包括空字符('\0'),因此不用显示的包括它。
2)从字符串--》字符数组
将字符串读入到char数组中,将自动加上结尾的空字符('\0')

3)字符串常量与字符常量不能互换
字符常量(‘S’)是字符串编码的简写表示,在ASCII系统上,‘S’是83的另一种写法,因此下面是将83赋值给shirt_size;
char shirt_size='s';
"S"不是字符常量,它表示的是俩个字符(字符S和\0)组成的字符串。
“S”实际上表示的是字符串所在的内存地址。
char shirt_size="s"; //将一个内存地址给 shirt_size
4)注意cout 当读取到'\0'就结束继续读取,直接结束
#include <iostream>
#include <cstring>
int main()
{
using namespace std;
int a;
const int Size=;
char name1[Size]; //empty array
char name2[Size]="C++owboy"; //initialized array
cout<<"Howdy! i'm "<<name2;
cout<<"I what's your name?\n";
cin>>name1;
cout<<"Well, "<<name1<<" , you name has";
cout<<strlen(name1)<<"letters and is stored\n";
cout<<"in an array of "<<sizeof(name1)<<" bytes. \n";
cout<<"you inital is "<<name1[]<<".\n";
name2[]='\0';
cout<<"Here are the first 3 characters of my name :"<<name2<<endl;
cin>>a;
return ;
}


二、string类库的方法
【原创】一起学C++ 之 字符串 ---------C++ primer plus(第6版)的更多相关文章
- 【原创】一起学C++ 之enum ---------C++ primer plus(第6版)
枚举 定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1 一.定义一个枚举,枚举类型,枚举量 *与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中 ...
- 【原创】一起学C++ 之指针、数组、指针算术 ---------C++ primer plus(第6版)
C++ Primer Plus 第6版 指针和数组基本等价的原因在于指针算术! 一.指针 ⑴整数变量+1后,其值将增加1: ⑵指针变量+1后,增加的量等于它指向的类型的字节数: ⑶C++将数组名解析为 ...
- 牛客练习赛53 A 超越学姐爱字符串 (DP)
牛客练习赛53 超越学姐爱字符串 链接:https://ac.nowcoder.com/acm/contest/1114/A来源:牛客网 超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢" ...
- C++ Primer中文版(第5版)
<C++ Primer中文版(第5版)> 基本信息 作者: (美)Stanley B. Lippman(斯坦利 李普曼) Josee Lajoie(约瑟 拉乔伊) Barbar ...
- c++ primer plus 第6版 部分三 9章 - 章
c++ primer plus 第6版 部分三 9章 - 章 第9章 内存模型和名称空间 1.单独编译 ...
- c++ primer plus 第6版 部分二 5- 8章
---恢复内容开始--- c++ primer plus 第6版 部分二 5- 章 第五章 计算机除了存储外 还可以对数据进行分析.合并.重组.抽取.修改.推断.合成.以及其他操作 1.for ...
- c++ primer plus 第6版 部分一 1-4章
c++ primer plus 第6版 源代码 ---编译器---目标代码---连接程序(启动代码--库代码)---可执行代码 源代码扩展名:c cc cxx C cpp ...
- 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]
读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...
- 02--读书笔记之:C++ Primer (第4版)及习题
推荐博客:http://www.cnblogs.com/xkfz007/archive/2012/08/15/2639381.html 第2章 数据和基本类型 1. 整型 2. 习题:左值和右值 3. ...
随机推荐
- 转--23种设计模式的搞笑解释(后续放逐一C++解释版本)
创建型模式 1.FACTORY —追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了.麦当劳和肯德 ...
- 简洁判断一个byte中有多少位为1的bit?
以下是Brian W. Kernighan公开的一个方法 unsigned bit_count(unsigned v) { unsigned int c; //置位总数累计 ; v; c++) { v ...
- 【转】使用BBB的device tree和cape(重新整理版)
只要你想用BBB做哪怕一丁点涉及到硬件的东西,你就不可避免地要用到cape和device tree的知识.所以尽管它们看起来很陌生而且有点复杂,但还是得学.其实用起来不难的.下面我只讲使用时必须会的内 ...
- Js 替代
替代全部:.replace(/#/g,"/") 替代第一个:.replace("#","/") var regS = new RegE ...
- ubuntu nexus 安装
今天公司组织学习使用linux系统搭建nexus maven私服中央仓库,在公司使用centos搭建了一个,回家又用ubuntu搭建一个,主要是为了能熟悉整个流程,现将主要过程总结如下:(PS:楼主是 ...
- 我的第一篇——nginx+naxsi总结篇1
今天是我正式在Linux下安装nginx的第一天吧,搜索,查看,安装,这之间肯定是或多或少的遇到了很多的问题,不管是大的还是小的,都应该记录下来,或许以后还会用到,或许会帮到其他人. 首先,先说一下, ...
- MSBuild编译扩展
新增一个C#工程,用记事本打开工程文件(.csproj结尾),滚动条拉到最后,大家可以看到一段如下的代码,其中<Target Name="BeforeBuild">和& ...
- java常用linux命令
1.ifconfig查看ip 2.查询 例如:find / -name httpd.conf 3.查看是否有tomcat进程 ps –ef|grep tomcat 来查看是否有tomcat进程 4.杀 ...
- 基于Selenium2+Java的UI自动化(2) - 启动浏览器
一.准备工作 我们常用的浏览器主要有三个:chrome.Firefox.IE:其中chrome 和 IE 需要下载驱动程序,才能启动浏览器,注意驱动程序有32位和64位两种. 另外:如何查看本机的浏览 ...
- iOS开发--Swift RAC响应式编程
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...