之前我们学习数据类型的时候,有一个类型 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的更多相关文章

  1. C语言字符数组超细讲解

    看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...

  2. String类,StringBuffer类转字符数组

    String不可变类型和StringBuffer可变类型 String类和StringBuffer类都是字符串表示类,区别在于String对象引用变量是不可变的,而StringBuffer类对象引用变 ...

  3. c字符和字符数组/字符串

    一维和二维的都可以:一维的情况如下:1,char string0[10];2,char string1[]="prison break";3,char string2[100]=& ...

  4. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  5. C:函数:功能:实现字符数组中所有字母的倒序存放并输出

    前两天小测碰到一道题,建立一个函数,功能:实现字符数组中所有字母的倒序存放并输出,一开始觉得简单跟数字数组差不多,运行一下发现很多格式错误,这些是不必要的错误,现在就来说下,先说一下代码思路:定义一个 ...

  6. 已知一个字符串S 以及长度为n的字符数组a,编写一个函数,统计a中每个字符在字符串中的出现次数

    import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 21:04 * @description ...

  7. 二维字符数组利用gets()函数输入

    举例: ][]; ;i<;i++) gets(a[i]); a是二维字符数组的数组名,相当于一维数组的指针, 所以a[i]就相当于指向第i个数组的指针,类型就相当于char *,相当于字符串.

  8. 字符串函数(strcpy字符串拷,strcmp字符串比较,strstr字符串查找,strDelChar字符串删除字符,strrev字符串反序,memmove拷贝内存块,strlen字符串长度)

    1.strcpy字符串拷贝拷贝pStrSource到pStrDest,并返回pStrDest地址(源和目标位置重叠情况除外) char *strcpy(char *pStrDest, const ch ...

  9. C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现

    strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符'\0'. 已知st ...

随机推荐

  1. LIS LCS LCIS (主要过一遍,重在做题)

    只详细讲解LCS和LCIS,别的不讲-做题优先. 菜鸟能力有限写不了题解,可以留评论,我给你找博客. 先得理解最长上升子序列吧,那个HDOJ拦截导弹系列可以做一下,然后用o(n)log(n)的在做一遍 ...

  2. bzoj 1076: [SCOI2008]奖励关【状压dp+概率dp】

    设f[i][s]为前i步,选的礼物集合为s的方案数,然而并不会转移-- 看了hzwer的blog,发现要倒着转移,然后答案就是f[1][0] 妙啊 #include<iostream> # ...

  3. JDK由浅到深的理解

    一.JDK的安装 二.JDK安装后目录下的文件夹的用处 bin:编译器(javac.exe); db:jdk从1.6之后内置Derby数据库,它是一个纯用Java实现的内存数据库,Apache的开源项 ...

  4. P1229-神秘岛

    神秘岛 描述 Description FireDancer来到一个神秘岛,他要从岛的西头到东头然后在东头的码头离开.可是当他走了一次后,发现这个岛的景色非常的美丽,于是他从东头的传送门传到了西头,换了 ...

  5. ngxin做http强制跳转https,接口的POST请求变成GET

    http强制跳转https出现了问题.修改nginx配置如下即可解决: server { listen 80; server_name *.snsprj.cn; return 307 https:// ...

  6. WIN7 64位操作系统 无法找到Access驱动

    为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...

  7. Educational Codeforces Round 24 D

    Alice and Bob got very bored during a long car trip so they decided to play a game. From the window ...

  8. 线段树(单点更新)/树状数组 HDOJ 1166 敌兵布阵

    题目传送门 /* 线段树基本功能:区间值的和,修改某个值 */ #include <cstdio> #include <cstring> #define lson l, m, ...

  9. 宏 函数 内联函数inline

    带参宏有时候可以代替函数作用:优点直接替代,省去函数调用过程的开销:但缺点也是很明显:容易出错,系统不做检查非常容易出错. 改进方案:内联函数:既有带参宏的直接替代(拷贝)的优点,又有系统检查的优点. ...

  10. C语言精确微秒级的延时

    //----------------------------------------------------------------------------- // Delay_us //------ ...