11、用字符数组存储和处理字符串

字符数组的声明和引用  字符串:

字符串常量 “china”,没有字符串变量,用字符数组来存放字符串,字符串以‘\0’结束。

字符串数组的初始化:

逐个输出输入字符串;

将整个字符串一次输入输出;

输出字符不包含\0;

输出字符串时用数组名,遇到\0结束;

输入多个字符串以空格分隔,输入单个字符串时期中不能有空格

static char str[8]={112,114,111,103,114,97,109,0};
static char str[8]={'p','r','o','g','r','a','m','\0'};
static char str[8]="program";
static char str[]="program";

#include<iostream>

using namespace std;

int main()

{

         static char c[10]=

         {'I',' ','a','m',' ','a',' ','b','o','y'};  //一维字符数组的声明和初始化

         int i;

         for(i=0;i<10;i++)    //逐个输出字符数组的元素

                            cout<<c[i];

         cout<<endl;

}//I’m a boy

//输出一个钻石图形

#include<iostream>

using namespace std;

int main()

{        //二维字符数组的声明和初始化,未被初始化的元素初始值为0

         static char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'}, {'*',' ',' ',' ','*'},{' ','*',' ','*'}, {' ',' ','*'}};

         int i,j;

         for (i=0;i<5;i++)      //逐个输出二维字符数组的元素

         { 

                            for(j=0;j<5 && diamond[i][j]!=0;j++)

                                     cout<<diamond[i][j]; 

                            cout<<endl;

         }

}

cin读取单词的时候遇到空格跳过;不能给数组名赋值,数组名时常量;

cin.getline(字符数组名st,字符个数N,结束符);

cin.get (字符数组名st,字符个数N,结束符);

一次连续读入多个字符,可以包括空格,直到读满N个,或者遇到结束符(默认为\n),读入的字符串存放在st中。

#include <iostream>

using namespace std;

void main (void)

{        char city[80];

         char state[80];

         int  i;

         for (i = 0; i < 2; i++)

         { cin.getline(city,80,',');

           cin.getline(state,80,'\n');

           cout<<"City: "<<city<<"   State: "
      <<state<<endl;

         }

}

Beijing,China

City: Beijing   Country: China

Shanghai,China

City: Shanghai   Country: China

字符串处理函数:strcat(连接),strcpy(复制),strcmp(比较),strlen(求长度), strlwr(转换为小写),strupr(转换为大写),头文件<cstring>

在C++中用字符数组处理字符串有很多不方便,我们可以使用string类,

#include <string>

#include <iostream>

using namespace std ;

void trueFalse(int x)//辅助函数

{cout << (x? "True": "False") << endl;}

int main()

{        string S1="DEF",  S2="123";

         char CP1[]="ABC";

         char CP2[]="DEF";

         cout << "S1 is " << S1 << endl;

         cout << "S2 is " << S2 << endl;

         cout<<"length of S2:"<<S2.length()<<endl;

         cout << "CP1 is " << CP1 << endl;

         cout << "CP2 is " << CP2 << endl;

         cout << "S1<=CP1 returned ";

         trueFalse(S1<=CP1);

         cout << "CP2<=S1 returned ";

         trueFalse(CP2<=S1);

         S2+=S1;

         cout<<"S2=S2+S1:"<<S2<<endl;

         cout<<"length of S2:"<<S2.length()<<endl;

}

C++——字符串处理的更多相关文章

  1. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  2. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  3. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  4. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  5. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  6. Redis的简单动态字符串实现

    Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,sds)的抽象类 ...

  7. ASP.NET加密和解密数据库连接字符串

    大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...

  8. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  9. 微信小程序中利用时间选择器和js无计算实现定时器(将字符串或秒数转换成倒计时)

    转载注明出处 改成了一个单独的js文件,并修改代码增加了通用性,点击这里查看 今天写小程序,有一个需求就是用户选择时间,然后我这边就要开始倒计时. 因为小程序的限制,所以直接选用时间选择器作为选择定时 ...

  10. ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案

    好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...

随机推荐

  1. RxHttp 让你眼前一亮的Http请求框架

    1.前言 RxHttp在今年4月份一经推出,就受到了广大Android 开发者的喜爱,截止本文发表在github上已有1100+star,为此,我自己也建个RxHttp&RxLife 的群(群 ...

  2. ES6 - 报错整理(1): Unexpected end of JSON input while parsing near '...es":"7.0.0-alpha.11",'

    npm install --save-dev 安装 babel-preset-env时一直报错 Unexpected end of JSON input while parsing near '... ...

  3. 知名KMS模拟器的官方发布网址

    些知名KMS模拟器的官方发布网址: 本机自激活安装类KMS激活软件,容易在系统升级中被查杀失效,且在软件传播过程中极易被捆绑植入后门.病毒,不推荐尝试. Windows Loaderhttps://f ...

  4. npm常用命令和脚手架使用

    最近前端同学使用最多的莫过于vue,angualr,react等热门前端框架了.那么就避免不掉的使用npm命令,本人就经常因为这三个脚手架的使用而不得不百度相应的npm命令,不胜其烦,,,因此就整理一 ...

  5. Protobuf用法

    官方文档 什么是 protocol buffer? Protocol buffers are a flexible, efficient, automated mechanism for serial ...

  6. 我眼中的ASP.NET.MVC

    MVC MVC全名 : Model View Controller ( Model-模型 View-视图  Controller-控制器)是一种经典的,经久不衰的,屹立不倒的软件设计框架.实现了业务逻 ...

  7. node模块化开发基本知识学习笔记

    传统非模块化开发缺点: 1.命名冲突 2.文件依赖 标准的模块化规范: 1.AMD-requirejs 2.CMD-seajs 服务器端模块化规范: 1.CommonJS-Node.js 模块化相关的 ...

  8. CSS字体连写及外观属性

    一.font:字体连写 使用font属性时,必须按以下语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开.注意:其中不需要设置的属性可以省略(取默认值),但必须保留font-size和font-f ...

  9. 使用TableHasPrimaryKey或TableHasForeignKey来知道表是否有主键或外键

    从下面2句SQL语句执行来看, 就知道那一张表有主键PrimaryKey或ForeignKey. 比如,表[Q]和[QQ]既没有主键,也没有外键. 当在SQL语句的条件中,使用“=”,那说明查询出来的 ...

  10. 洛谷P4526 【模板】自适应辛普森法2

    P4526 [模板]自适应辛普森法2 洛谷传送门 题目描述 计算积分 保留至小数点后5位.若积分发散,请输出"orz". 输入格式 一行,包含一个实数,为a的值 输出格式 一行,积 ...