字符数组函数,连接strcat 复制函数strcpy 比较函数strcmp 长度函数 strlen
之前我们学习数据类型的时候,有一个类型 char ,这个类型允许我们在里边放一个字符
char variable1='o';
char variable2='k';
#include <iostream>
using namespace std; int main(){
//C++当中字符数组赋值,''单引号中不能为空
char talk[]={'I',' ','a','m',' ','h','a','p','p','y'};
for(int i=;i<;i++){
cout<<talk[i];
}
cout<<endl;
}
使用字符二维数组制作输出一个钻石图形。
#include <iostream>
using namespace std; int main(){
//C++当中字符数组赋值,''单引号中不能为空
char talk[][]={{' ',' ','*'},
{' ','*',' ',' ','*'},
{'*',' ',' ',' ','*'},
{' ','*',' ','*'},
{' ',' ','*'}};
for(int i=;i<;i++){
for(int j=;j<;j++)
cout<<talk[i][j];
cout<<endl;
}
cout<<endl;
}
这个字符数组的长度是多少?
char talk[10]={'I',' ','a','m',' ','h','a','p','p','y'};
字符串 I am happy
string talk="I am happy";
两者意义上市一致的,但是长度上是不一致的。c++在字符y的后边自动添加了一个'\0',这个一个符号,表示字符串的结束。
string 和我们之前学的int float double boolean char 基本数据类型不同,可以直接在c++程序中使用。
string 是不能在c++中直接使用。
#include <iostream>
#include <string>
using namespace std; int main(){
int a=;
cout<<a;
//s的长度是多少呢? 是11 c++在字符串使用的时候自动添加了一个'\0'
//,当c++系统输出字符串的时候检测到 '\0',结束
string s="I am happy";
//arr的长度是多少呢? 是11
char arr[]="I am happy";
//arr2的长度是多少呢?是10
char arr2[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
//arr与arr2 是等价的
cout<<endl<<arr;
cout<<endl<<arr2;
cout<<endl;
cout<<s;
return ;
}
char str[5];
cin>>str;
如果输入字符串为Beijing字符串长度超出,也不会报错,(与其他数据类型不同)但是会破坏其他空间中的数据,有可能引发问题。
使用字符串处理函数,进行字符串的操作
第一个,字符串连接
使用strcat(char[],const char[])
举例:
#include <iostream>
#include <string.h>
using namespace std; int main(){
//C++当中字符数组赋值,''单引号中不能为空
char str1[]="People's Republic of ";
char str2[]="China";
cout<<strcat(str1,str2); }
第二个,字符串复制
#include <iostream>
#include <string.h>
using namespace std; int main(){
//C++当中字符数组赋值,''单引号中不能为空
char str1[];
char str2[]="China";
strcpy(str1,str2);
cout<<str1<<" ~ "<<str2; }
第三个,字符串比较
#include <iostream>
#include <string.h>
using namespace std; int main(){
//按照字母表的顺序,在后边就大 ASCII
char str1[]="Zoa";
char str2[]="Zoble";
int x=strcmp(str1,str2);
cout<<x; }
如果相等为0,如果大于为1,如果小于为-1;
第四个,字符串长度函数
#include <iostream>
#include <string.h>
using namespace std; int main(){
//字符串"Zoa",实际上等价于{'Z','o','a','\0'}
//字符串长度函数 求的值是实际长度,不是真实长度
char str1[]="Zoa";
char str2[]="Zoble";
int x=strlen(str1);
int y=strlen(str2);
cout<<x<<"~~~"<<y; }
字符数组函数,连接strcat 复制函数strcpy 比较函数strcmp 长度函数 strlen的更多相关文章
- C语言字符数组超细讲解
看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...
- String类,StringBuffer类转字符数组
String不可变类型和StringBuffer可变类型 String类和StringBuffer类都是字符串表示类,区别在于String对象引用变量是不可变的,而StringBuffer类对象引用变 ...
- c字符和字符数组/字符串
一维和二维的都可以:一维的情况如下:1,char string0[10];2,char string1[]="prison break";3,char string2[100]=& ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C:函数:功能:实现字符数组中所有字母的倒序存放并输出
前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个 ...
- 已知一个字符串S 以及长度为n的字符数组a,编写一个函数,统计a中每个字符在字符串中的出现次数
import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 21:04 * @description ...
- 二维字符数组利用gets()函数输入
举例: ][]; ;i<;i++) gets(a[i]); a是二维字符数组的数组名,相当于一维数组的指针, 所以a[i]就相当于指向第i个数组的指针,类型就相当于char *,相当于字符串.
- 字符串函数(strcpy字符串拷,strcmp字符串比较,strstr字符串查找,strDelChar字符串删除字符,strrev字符串反序,memmove拷贝内存块,strlen字符串长度)
1.strcpy字符串拷贝拷贝pStrSource到pStrDest,并返回pStrDest地址(源和目标位置重叠情况除外) char *strcpy(char *pStrDest, const ch ...
- C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符'\0'. 已知st ...
随机推荐
- django-ckeditor表情包修改
一.版本 Django==1.11 django-ckeditor==5.2.2 二.关键步骤 1.删除旧的ckeditor静态文件 所在目录:项目目录下的static文件夹下的ckditor文件夹 ...
- Java简单高精度合集
第一个Java的算法程序.记得可以使用Alt+'/'自动补全sysout和main之类的. BigInteger在java.math.BigInteger中. import java.math.Big ...
- yii1 compoment实现自己的db类
突然发现yii1并没有实现mysql的读写分离默认配置,而用yii1的配置实现读写分离又很麻烦,所以我写了一个db的辅助类 首先我们需要配置一下一下辅助db的compoment类,yii的compom ...
- bzoj 2599: [IOI2011]Race【点分治】
点分治,用一个mn[v]数组记录当前root下长为v的链的最小深度,每次新加一个儿子的时候都在原来儿子更新过的mn数组里更新ans(也就是查一下mn[m-dis[p]]+de[p]) 这里注意更新和初 ...
- RobotFrameWork自动化系列:安装配置
1. RobotFrameWork安装配置 1.1. 安装环境 64位win10家庭中文版 网上很多这方面的教程,但是比较零散,这里是自己安装配置的一个简单的笔记. 1.2. 安装说明 由于Rob ...
- git 保存文件目录
Ubuntu中git clone就保存在你命令行现在所在的目录里 所以最好推荐 先用cd这个命令去自己想保存的目录 之后再git clone
- bzoj2301 [HAOI2011]Problem b【莫比乌斯反演 分块】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 很好的一道题.首先把每个询问转化为4个子询问,最后的结果就是这四个子询问的记过加加减减 ...
- 暴力 BestCoder Round #41 1001 ZCC loves straight flush
题目传送门 /* m数组记录出现的花色和数值,按照数值每5个搜索,看看有几个已满足,剩下 5 - cnt需要替换 ╰· */ #include <cstdio> #include < ...
- Suricata的规则解读(默认和自定义)
不多说,直接上干货! 见suricata官网 https://suricata.readthedocs.io/en/latest/rules/index.html 一.Suricata的规则所放位置 ...
- laravel 配置站点域名
访问一直报404错误 laravel端: default.conf server { listen 80; server_name api.xxxx.com; ...