C++代码信息

运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,不支持键盘输入语句但是拥有更高的运行速度,输出简洁明了 。 点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
结构体运算符重载 发布于:2021-03-04 13:42 算法作业一;三分搜索 发布于:2021-03-04 12:56 单链表的插入删除 发布于:2021-03-04 14:34 单链表的基本实现 发布于:2021-03-04 10:32 线性表的静态实现-插入删除 发布于:2021-03-04 09:52 数组和指针 发布于:2021-02-26 16:59 extern 全局变量和全局函数 发布于:2021-02-26 16:53 typedef 别名和函数指针别名 发布于:2021-02-26 16:05 #define 宏替换的使用?? 发布于:2021-02-26 15:54 C和C++:一些符号 发布于:2021-02-26 14:03 C和C++奇怪内容 ## # __VA_ARGS__和... (可变参数) 宽字符 发布于:2021-02-25 23:09 2.25.1 poj 1979 发布于:2021-02-25 23:18 C和C++的不同-4-结构体函数不同 发布于:2021-02-25 15:55 C和C++的不同-3-形参传引用 发布于:2021-02-25 15:52 C和C++的不同-2-bool 发布于:2021-02-25 13:56 C和C++的不同-1-打印方式 发布于:2021-02-25 13:53 2.24.1 poj 1011 发布于:2021-02-25 22:03 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 发布于:2021-02-22 22:09 英雄年龄排序 发布于:2021-02-21 16:05 案例1 老师学生案例 发布于:2021-02-21 12:07 程序运行文件 发布于:2021-02-17 22:37 基类调用虚函数的动态绑定 发布于:2021-02-17 10:22 无类型参数模板 发布于:2021-02-05 23:52 设计模式-迭代器模式 发布于:2021-02-05 16:59 设计模式-解释器模式 发布于:2021-02-05 10:21 设计模式-访问者模式 发布于:2021-02-04 15:56 价格计算1.166 发布于:2021-02-03 17:24 任意多边形的最大内切圆算法 发布于:2021-02-02 20:15 设计模式-责任链模式 发布于:2021-01-28 11:24 设计模式-命令模式 发布于:2021-01-27 16:02 设计模式-享元模式 发布于:2021-01-26 15:24 生日专用的 发布于:2021-01-25 22:42 解凱撒加密 发布于:2021-01-25 22:37 设计模式-桥接模式 发布于:2021-01-25 17:05 设计模式-适配器模式 发布于:2021-01-25 16:14 设计模式-装饰模式 发布于:2021-01-25 13:50 整数的逆序 发布于:2021-01-24 16:52 素数de代码 发布于:2021-01-24 16:44 设计模式-建造者模式 发布于:2021-01-21 14:42 最小未出现的正整数 发布于:2021-01-20 13:55 vector容器存放自定义类型 发布于:2021-01-15 19:50 案例描述 需要设计一个英雄结构体,包括姓名年龄性别 要求创建结构体数组存放五名英雄 通过冒泡排序的算法,将数组中的英雄按年龄进行升序排列 最后打印 发布于:2021-01-15 16:20 centos添加多IP 发布于:2021-01-15 15:30 测试查找数组最大值 发布于:2021-01-14 22:17 泛型编程day1 发布于:2021-01-13 20:53 结构体数组,结构体嵌套的调用 小测答案及思路 发布于:2021-01-11 18:14 结构体章节的小结 测试 发布于:2021-01-11 18:32 圆面积求值法 发布于:2021-01-07 15:12 菲波那切数列 发布于:2021-01-06 23:41 矩阵求菲波那切数列 发布于:2021-01-06 23:41 [更多]
显示目录

字符串

C++ 字符串

C++ 提供了以下两种类型的字符串表示形式:

  • C 风格字符串
  • C++ 引入的 string 类类型

C 风格字符串

C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 '' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。char greeting[6] = {'H', 'e', 'l', 'l', 'o', ''};

依据数组初始化规则,您可以把上面的语句写成以下语句:

char greeting[] = "Hello";

以下是 C/C++ 中定义的字符串的内存表示: C/C++ 中的字符串表示

其实,您不需要把 null 字符放在字符串常量的末尾。C++ 编译器会在初始化数组时,自动把 '' 放在字符串的末尾。让我们尝试输出上面的字符串

#include <iostream>

using namespace std;

int main ()
{
   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "Greeting message: ";
   cout << greeting << endl;

   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

Greeting message: Hello

C++ 中有大量的函数用来操作以 null 结尾的字符串:supports a wide range of functions that manipulate null-terminated strings:

序号 函数 & 目的
1 strcpy(s1, s2); 复制字符串 s2 到字符串 s1。
2 strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。
3 strlen(s1); 返回字符串 s1 的长度。
4 strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1s2 则返回大于 0。
5 strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
6 strstr(s1, s2); 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

下面的实例使用了上述的一些函数:

#include <iostream>
#include <cstring>

using namespace std;

int main ()
{
   char str1[10] = "Hello";
   char str2[10] = "World";
   char str3[10];
   int  len ;

   // 复制 str1 到 str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   // 连接 str1 和 str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   // 连接后,str1 的总长度
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

C++ 中的 String 类

C++ 标准库提供了 string 类类型,支持上述所有的操作,另外还增加了其他更多的功能。我们将学习 C++ 标准库中的这个类,现在让我们先来看看下面这个实例:

现在您可能还无法透彻地理解这个实例,因为到目前为止我们还没有讨论类和对象。所以现在您可以只是粗略地看下这个实例,等理解了面向对象的概念之后再回头来理解这个实例。

#include <iostream>
#include <string>

using namespace std;

int main ()
{
   string str1 = "Hello";
   string str2 = "World";
   string str3;
   int  len ;

   // 复制 str1 到 str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;

   // 连接 str1 和 str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;

   // 连接后,str3 的总长度
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10
由JSRUN为你提供的C++在线工具
        JSRUN提供的C++在线运行,C++ 在线编译工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

皮肤:

运行模式:

嵌入代码 iframe嵌入: