一、用字符数组存储字符串,这是从C语言中继承的

1、声明

char name[6]={'l','i','u','h','a','\0'};或者 char name[6]="liuha";或者char name[6]={"liuha"};

这几种声明方式都是等价的,字符数组中会自动存储字符串的结束符'\0'

2、字符数字的输入输出

char name[6];

一次性输入输出:cin>>name;cout<<name;  //name表示数组中第一个值的地址

循环输入输出:for(int i=0;i<6;i++)

{

cout<<name[i];

cin>>name[i];

}

若数组为二维:char namenum[3][2]

for(int i=0;i<3;i++)

{

cin>>namenum[i];       //一次输入一行

}

3、字符数组的函数(包括头文件string)

strcat(字符数组1,字符数组2);  strcpy(字符数组1,字符数组2);   strcmp(字符数组1,字符数组2);   strlen(字符数组);

二、C++中增加了string头文件

1、声明(包括头文件)

string param="I Love China";   //必须附加头文件string

param中存储的只有“I Love China”,没有字符串结束符

2、字符串的输入输出

cin>>param;cout<<param;

3、字符串的函数

string str1,str2;

连接函数   string str=str1+str2;

比较函数   if(str1>str2)

三、字符串数组

string name[3]={"zhangsan","lisi",“wangwu”};

name[0]中存储的只是“zhangsan”,不包括字符串结束符;

四、string和char的区别

string str1,str2     char str1[MAXSIZE],str2[MAXSIZE]  //假定要定义的char类型字符串数组的大小为MAXSIZE

比较:>,==,<,>=,<=等

String类型:str1==str2;str1>=str2;str1<=str2 就不一一列举了,可以看出,string类型字符串比较是非常方便的,直接就像int类型那样直接比就可以了(当然比法是不一样的)

Char类型:strcmp(str1,str2); 有返回值的,str1<str2 返回负数,str1==str2返回为0,str1>str2返回正数。某真心感觉很麻烦,每次比较都要用函数,当然也可以进行运算符重载直接像string类型那样比较,如果不嫌麻烦的话。

复制拷贝:

将str2中内容复制到str1中

string类型:str1=str2        char类型:strcpy(str1,str2);

string类型变量在定义的时候还可以拷贝构造函数,如string str1(str2);

连接:

将str2中内容连接到str1后头

String 类型:str1+=str2    char类型:strcat(str1,str2);

统计字符个数(字符串长度):

统计字符串中字符的个数:

String类型:str1.length();  str1.size();返回的值都是str1的长度

Char 类型:strlen(str1); 返回的值是str1的长度

清空字符串变量中所有数据:

String类型:str1..~string();

或者:str1=””;

将char类型字符串转换成string类型:

char str1=”***”;

string str2(str1);

将string类型转换成char类型:

strcpy(str2,str1.c_str());

前边的str2是char类型的字符串,后边str1是string类型的。注意转换千万别越界

string中的某一个字符是可以直接保存到char类型字符中的,例如

string str=”123”

如ch=str[1];

那么输出ch打印出来的是2

字符串中的某一字符转换成int类型数字:

int num=str[i]-‘0’;

字符串类型与整数类型互相转换:

字符串转换成整数:

用atoi()函数,C语言中头文件是#include<stdlib.h>(C++中是#include<cstdlib>)

用法:atoi只能转char *类型的,如果是string类型的,需先转成char类型

int num=atoi(str);

整数转换成字符串:

Itoa()函数,将整数转换成char类型

itoa(num,str, radix);

num是int类型数字,str是最终转换成char的结果,radix是用多少进制保存,如2、8、10、16进制等

字符串中查找子串:

find()函数:

字符串详细内容见大神博客:

http://blog.csdn.net/laobai1015/article/details/62426137

基本用法

int key=find(str1,str2);

其中str1、str2都是string类型,函数的意思是在str1中查找str2第一次出现的位置并返回这个值,如果不存在则返回-1

strstr()函数:

char *str3=strstr(str1,str2);

str1,str2均为char*类型,函数的意思是在str1中查找str2,返回第一次出现str2的地址,如果没有找到则返回空

例如str1=”My name is”;    str2=”name”;

那么返回的str3为“name is”;

string类型中,字符串字串的截取:

substr()函数,用于string类型

string str;

str.substr(startnum, len);

其中 startnum 是起始字符的序号,len是从起始字符开始截取的字符串长度

那么,若要截取str中序号m到n间(其中不包括n)的子字符串则为

str.substr(m, n-m);

strtok()函数,用于char类型

char *str=strtok(str1,str2);

将字符串str1沿着str2切割,返回的是char*

转载于:https://www.cnblogs.com/L-X-H-Blue-Ocean/p/10795727.html

C/C++字符串使用整理相关推荐

  1. 1.7 编程基础之字符串 15 整理药名 python

    http://noi.openjudge.cn/ch0107/15/ """1.7 编程基础之字符串 15 整理药名 http://noi.openjudge.cn/ch ...

  2. C# 字符串拼接整理_C#字符串拼接方式整理

    C# 字符串拼接整理_C#字符串拼接方式整理 一.字符串连接使用+  注意:此方式多种语言通用,js,java中都可以如此操作 string hello = "Hello"; st ...

  3. c语言字符串知识整理

    c语言字符串知识整理 c 语言中字符串并没有专门的类型定义,而是用连续的字符数组存储,并以转义\0 表示字符串结束,\0是空字符,不能被输出. /*常用字符串初始化方式*/char c1[] = &q ...

  4. C# 字符串格式化_C# 字符串格式化整理

    一.C# 字符串格式化_C# 字符串格式化整理 使用方式1:  xxx.ToString(xxxx) 使用方式2:string.Format(xxxx,xxx)  1.占位符格式化 零占位符:固定位数 ...

  5. php字符串操作整理,《PHP字符串操作》收集整理

    <PHP字符串操作>收集整理 echo substr("1234567", 1, 3); 和 echo substr(123456,1, 3); 是一样的 定义 一般用 ...

  6. 快速记忆python函数-python之格式化字符串速记整理

    一.格式化字符串的方式: 1.字符串表达式: 语法格式:"%s' % var 或 "%s %d' % (var1, var2) 说明:%s.%d等为格式类型说明符 例子: > ...

  7. 数据结构第四章字符串MOOC整理

    1.若串S1='ABCDEFG', S2='9898' ,S3='###',S4='012345',执行 concat(replace(S1,substr(S1,length(S2),length(S ...

  8. php字符串操作整理,PHP 字符串操作整理

    '  也能达到格式化的效果 trim():去除字符串 首尾 空白等特殊符号或指定字符序列 ltrim():去除字符串 首 空白等特殊符号或指定字符序列 rtrim():去除字符串 尾 空白等特殊符号或 ...

  9. Lua中获取字符串长度整理

    在 Lua 中,获取字符串长度我们一般使用 #str(不建议使用 string.len(str) )! local str = "abc" local len = #str pri ...

最新文章

  1. Overload Overwrite Override
  2. CV:翻译并解读2019《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》第一章~第三章
  3. linux oracle新建监听,linux 下 oracle图形界面(需配置监听,创建实例)
  4. webserver接口_SpringBoot内置源码解析WebServer初始化过程
  5. mysql查看系统可用字符集_MySQL查看所有可用的字符集
  6. 苹果员工出逃现象严重:人才挽留成大难题
  7. Android性能优化-Render篇
  8. MySQL 聚合函数(一)聚合(组合)函数概述
  9. Cadence下载 安装 与 和谐教程
  10. SAE J1939协议读取车辆故障码
  11. Android 中文 API (30) —— CompoundButton.OnCheckedChangeListener
  12. 三线压力传感器原理_空调压力传感器三线原理图 压力传感器内部原理
  13. java代码实现Excel irr计算
  14. 线上bug快速定位小技巧 - chrome实时调试线上js代码
  15. html怎么设置seo,简单说明一下html相关的seo设置!
  16. C语言学习2:Hello World!详解
  17. 招商银行信用卡中心18秋招题解
  18. 视频播放器(一):流程
  19. mysql 1146 错误处理
  20. xy苹果助手未受信任_苹果手机怎么设置信用软件

热门文章

  1. [转载]当代中国建筑设计百家名院名单
  2. Visual Studio 2008在设计视图和代码视图切换的快捷键F7
  3. 现在已经到了考虑云计算的时候
  4. [c#菜鸟]lambda表达式
  5. android制作闪动的红心
  6. openstack--1--基础环境搭建
  7. 学习NodeJS第一天:node.js引言
  8. 转载--微分几何为何必然兴起?
  9. TabHost刷新activity的方法
  10. 当Linux提权不能反弹Shell时利用metasploit进行提权