【原创】一起学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. ...
随机推荐
- C#_wpf_userinput_数据绑定_后台对象改变,界面数据也变化
<!--MainWindow.xaml--> <Window x:Class="UserStore.MainWindow" xmlns="http:// ...
- Android_sharePreference
/** * Android的四中数据存储方式: * 1.SharePreferences * 2.SQLite * 3.Content Provider * 4.File * * SharePrefe ...
- Azure PowerShell 创建虚拟机
# 指定订阅名称$subscriptionName="订阅名称"# 指定云服务名称$serviceName="云服务名称"# 指定用来保存虚拟机VHD的存储$s ...
- 我、实战nginx+naxsi(WAF)之一
差不多,一个星期多的时间都过去了.但是还是感觉时间过的太快,总是不禁的让人长叹一声,关于nginx和(naxsi)WAF这个问题,也算是只走出了第一步,在遇到了各种乱七八糟的错误之后总算是想要静下心来 ...
- 关于Hibernate的总结
主键的生成策略: * increment :是由Hibernate完成的自动增长.(不是数据库底层的自动增长的方式.) * select max(id) from customer * ...
- 问题:loadrunner录制event为0
loadrunner录制问题问题1:录制时出现event为0的状况 解决办法: 1.如果是IE浏览器,把启用第三方浏览器扩展*钩给去掉 2使用火狐浏览器,这个就比较好,在lr启动的时候就去勾选 ...
- jquery ajax发送delete(use in jquery file upload delete file)
环境: jQuery file upload HTML example code <div class="pic-preview"> <div class=&qu ...
- 去除ActionBar的方法
今天做一个播放器项目,由于要去除ActionBar,纠结好久,原来这么简单 记录一下 只需要修改AndroidManifest.xml文件中的主题即可 <application android: ...
- Spark1.2新特性概述
http://mp.weixin.qq.com/s?__biz=MjM5NTc2MTg3Mw==&mid=201641685&idx=1&sn=1b75be3d774bb3f2 ...
- Android线控的使用
实现方式一:只能在程序为前台时监控 在Activity中即可监听 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { Log ...