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版)的更多相关文章

  1. 【原创】一起学C++ 之enum ---------C++ primer plus(第6版)

    枚举 定义:在默认情况下讲整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次+1 一.定义一个枚举,枚举类型,枚举量 *与C#相比个人认为C++的enum不好一点是不能通过枚举名点其中 ...

  2. 【原创】一起学C++ 之指针、数组、指针算术 ---------C++ primer plus(第6版)

    C++ Primer Plus 第6版 指针和数组基本等价的原因在于指针算术! 一.指针 ⑴整数变量+1后,其值将增加1: ⑵指针变量+1后,增加的量等于它指向的类型的字节数: ⑶C++将数组名解析为 ...

  3. 牛客练习赛53 A 超越学姐爱字符串 (DP)

    牛客练习赛53 超越学姐爱字符串 链接:https://ac.nowcoder.com/acm/contest/1114/A来源:牛客网 超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢" ...

  4. C++ Primer中文版(第5版)

    <C++ Primer中文版(第5版)> 基本信息 作者: (美)Stanley B. Lippman(斯坦利 李普曼)    Josee Lajoie(约瑟 拉乔伊)    Barbar ...

  5. c++ primer plus 第6版 部分三 9章 - 章

    c++ primer plus 第6版                                               部分三 9章 - 章 第9章   内存模型和名称空间 1.单独编译 ...

  6. c++ primer plus 第6版 部分二 5- 8章

    ---恢复内容开始--- c++ primer plus 第6版 部分二    5-  章 第五章 计算机除了存储外 还可以对数据进行分析.合并.重组.抽取.修改.推断.合成.以及其他操作 1.for ...

  7. c++ primer plus 第6版 部分一 1-4章

    c++ primer plus 第6版 源代码 ---编译器---目标代码---连接程序(启动代码--库代码)---可执行代码 源代码扩展名:c   cc   cxx     C    cpp     ...

  8. 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

    读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成 ...

  9. 02--读书笔记之:C++ Primer (第4版)及习题

    推荐博客:http://www.cnblogs.com/xkfz007/archive/2012/08/15/2639381.html 第2章 数据和基本类型 1. 整型 2. 习题:左值和右值 3. ...

随机推荐

  1. C#_wpf_userinput_数据绑定_后台对象改变,界面数据也变化

    <!--MainWindow.xaml--> <Window x:Class="UserStore.MainWindow" xmlns="http:// ...

  2. Android_sharePreference

    /** * Android的四中数据存储方式: * 1.SharePreferences * 2.SQLite * 3.Content Provider * 4.File * * SharePrefe ...

  3. Azure PowerShell 创建虚拟机

    # 指定订阅名称$subscriptionName="订阅名称"# 指定云服务名称$serviceName="云服务名称"# 指定用来保存虚拟机VHD的存储$s ...

  4. 我、实战nginx+naxsi(WAF)之一

    差不多,一个星期多的时间都过去了.但是还是感觉时间过的太快,总是不禁的让人长叹一声,关于nginx和(naxsi)WAF这个问题,也算是只走出了第一步,在遇到了各种乱七八糟的错误之后总算是想要静下心来 ...

  5. 关于Hibernate的总结

    主键的生成策略: * increment      :是由Hibernate完成的自动增长.(不是数据库底层的自动增长的方式.) * select  max(id) from  customer * ...

  6. 问题:loadrunner录制event为0

     loadrunner录制问题问题1:录制时出现event为0的状况 解决办法: 1.如果是IE浏览器,把启用第三方浏览器扩展*钩给去掉    2使用火狐浏览器,这个就比较好,在lr启动的时候就去勾选 ...

  7. jquery ajax发送delete(use in jquery file upload delete file)

    环境: jQuery file upload HTML example code <div class="pic-preview"> <div class=&qu ...

  8. 去除ActionBar的方法

    今天做一个播放器项目,由于要去除ActionBar,纠结好久,原来这么简单 记录一下 只需要修改AndroidManifest.xml文件中的主题即可 <application android: ...

  9. Spark1.2新特性概述

    http://mp.weixin.qq.com/s?__biz=MjM5NTc2MTg3Mw==&mid=201641685&idx=1&sn=1b75be3d774bb3f2 ...

  10. Android线控的使用

    实现方式一:只能在程序为前台时监控 在Activity中即可监听 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { Log ...