之前我们学习数据类型的时候,有一个类型 char ,这个类型允许我们在里边放一个字符

char variable1='o';

char variable2='k';

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5. //C++当中字符数组赋值,''单引号中不能为空
  6. char talk[]={'I',' ','a','m',' ','h','a','p','p','y'};
  7. for(int i=;i<;i++){
  8. cout<<talk[i];
  9. }
  10. cout<<endl;
  11. }

使用字符二维数组制作输出一个钻石图形。

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5. //C++当中字符数组赋值,''单引号中不能为空
  6. char talk[][]={{' ',' ','*'},
  7. {' ','*',' ',' ','*'},
  8. {'*',' ',' ',' ','*'},
  9. {' ','*',' ','*'},
  10. {' ',' ','*'}};
  11. for(int i=;i<;i++){
  12. for(int j=;j<;j++)
  13. cout<<talk[i][j];
  14. cout<<endl;
  15. }
  16. cout<<endl;
  17. }
  1. 这个字符数组的长度是多少?
    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++中直接使用。
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main(){
  6. int a=;
  7. cout<<a;
  8. //s的长度是多少呢? 是11 c++在字符串使用的时候自动添加了一个'\0'
  9. //,当c++系统输出字符串的时候检测到 '\0',结束
  10. string s="I am happy";
  11. //arr的长度是多少呢? 是11
  12. char arr[]="I am happy";
  13. //arr2的长度是多少呢?是10
  14. char arr2[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
  15. //arr与arr2 是等价的
  16. cout<<endl<<arr;
  17. cout<<endl<<arr2;
  18. cout<<endl;
  19. cout<<s;
  20. return ;
  21. }

char str[5];

cin>>str;

如果输入字符串为Beijing字符串长度超出,也不会报错,(与其他数据类型不同)但是会破坏其他空间中的数据,有可能引发问题。


使用字符串处理函数,进行字符串的操作

第一个,字符串连接

使用strcat(char[],const char[])

举例:

  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int main(){
  6. //C++当中字符数组赋值,''单引号中不能为空
  7. char str1[]="People's Republic of ";
  8. char str2[]="China";
  9. cout<<strcat(str1,str2);
  10.  
  11. }

第二个,字符串复制

  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int main(){
  6. //C++当中字符数组赋值,''单引号中不能为空
  7. char str1[];
  8. char str2[]="China";
  9. strcpy(str1,str2);
  10. cout<<str1<<" ~ "<<str2;
  11.  
  12. }

第三个,字符串比较

  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int main(){
  6. //按照字母表的顺序,在后边就大 ASCII
  7. char str1[]="Zoa";
  8. char str2[]="Zoble";
  9. int x=strcmp(str1,str2);
  10. cout<<x;
  11.  
  12. }

如果相等为0,如果大于为1,如果小于为-1;

第四个,字符串长度函数

  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int main(){
  6. //字符串"Zoa",实际上等价于{'Z','o','a','\0'}
  7. //字符串长度函数 求的值是实际长度,不是真实长度
  8. char str1[]="Zoa";
  9. char str2[]="Zoble";
  10. int x=strlen(str1);
  11. int y=strlen(str2);
  12. cout<<x<<"~~~"<<y;
  13.  
  14. }

字符数组函数,连接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. 洛谷 - P1111 - 修复公路 - 并查集

    https://www.luogu.org/problemnew/solution/P1111 并查集的水题,水题都错了好多发. 首先并不是有环就退出,而是连通分支为1才退出,每次合并成功连通分支才会 ...

  2. 洛谷 - P1739 - 表达式括号匹配 - 模拟 - 栈

    https://www.luogu.org/problemnew/show/P1739 虽然应该是用栈的……但是直接模拟就可以了. #include<bits/stdc++.h> usin ...

  3. poj 3648 Wedding【2-SAT+tarjan+拓扑】

    看错题*n,注意是输出新娘这边的-- 按2-SAT规则连互斥的边,然后注意连一条(1,1+n)表示新娘必选 然后输出color[belong[i]]==color[belong[1+n(新娘)]]的点 ...

  4. poj 1182 食物链【带权并查集】

    设相等的边权为0,吃的边权为,被吃的边权为2,然后用带权并查集在%3的意义下做加法即可 关系为简单环的基本都可以用模环长的方式是用带权并查集 #include<iostream> #inc ...

  5. bzoj 2761: [JLOI2011]不重复数字【hash】

    map会T,双hash会冲突--于是非酋写了个三hash #include<iostream> #include<cstdio> #include<cstring> ...

  6. 洛谷P2569 [SCOI2010]股票交易(单调队列)

    传送门 惭愧……这种题目都没看出来…… 首先,我们用$dp[i][j]$表示在第$i$天,手上有$j$股时的最大收益 第一,我们可以直接买股票,即$dp[i][j]=-j*AP_i$,这个直接计算即可 ...

  7. centos走一波

    Cpu 作为一个具有特定功能的芯片,里面含有微指令集 如果你想让主机进行什么特异的运算,就需要参考Cpu是否有相关内置的微指令集 才可以由于Cpu的工作主要在于 管理和运算 ,因此Cpu内又可以分为两 ...

  8. PHP函数技巧篇

    可变参数 Php提供3个函数用于检索在函数中所传递的参数. $array = func_get_args(); //返回一个提供给函数的所有参数的数组 $count = func_num_args() ...

  9. Plugging an Unplugged Pluggable Database

    1.unplug To unplug a PDB, you first close it and then generate an XML manifest file. The XML file co ...

  10. 摄像头调用,h5调用摄像头进行扫一扫插件备份

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...