C++在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
随便玩玩啊 发布于:2022-05-25 13:01 OpenJudge1.12_10素数对 发布于:2022-05-22 20:24 OpenJudge1.12_2短信计费 发布于:2022-05-22 19:54 Hello world 发布于:2022-05-20 19:17 用冒泡法对一组用户输入的整数进行排序 发布于:2022-05-19 10:29 regex的应用 发布于:2022-05-18 10:04 C++ learning notebook 发布于:2022-05-17 20:16 测试友元与继承 发布于:2022-05-16 11:28 计算几何模板 发布于:2022-05-15 09:50 c++测试代码 发布于:2022-05-14 21:24 使用stack开发的计算器 发布于:2022-05-12 00:10 图图UDN 发布于:2022-05-11 12:13 Openjudge1.7_18验证子串 发布于:2022-05-09 14:34 Openjudge1.7_5(最标准)但不对qwq 发布于:2022-05-09 13:35 比较字符串相似度? 发布于:2022-05-09 10:30 比较字符串相似度 发布于:2022-05-10 21:48 字符串提取并不能 发布于:2022-05-07 16:37 一个失败的 Linklist 发布于:2022-05-06 09:36 排序+双指针 解决 排除一个数组中存在的另一个数组元素 发布于:2022-05-05 08:40 试题__工厂机器__错误答案 发布于:2022-05-04 16:03 试题__兔子与胡萝卜 发布于:2022-05-04 15:18 试题__等腰三角形 发布于:2022-05-04 14:31 操作系统存储器管理 发布于:2022-05-03 20:50 使用智能指针取代普通指针不需要记得谁开辟的空间谁就要记得释放2 发布于:2022-05-03 09:02 待定需修改 发布于:2022-05-02 11:29 this指针的用法 发布于:2022-05-01 08:52 熟悉指向指针的指针作参数的函数调用 发布于:2022-04-30 11:07 插入排序:: 直接插入,二分插入,希尔插入 发布于:2022-04-29 16:57 选择排序:: 简单选择、堆排序 发布于:2022-04-29 16:32 二叉树常用操作 发布于:2022-04-29 15:32 l两点的间距离计算 发布于:2022-04-29 13:25 用指针常量优化交换两数的代码,更加安全 发布于:2022-04-29 11:25 熟悉指针:判断指针和数组的区别 发布于:2022-04-29 10:10 熟悉指针:要求a >= b >= c的用指针写的代码 发布于:2022-04-29 09:55 操作系统实验二:动态高优先权优先调度算法 发布于:2022-04-28 23:31 求两点间的距离 发布于:2022-04-29 00:09 快排算法代码 发布于:2022-04-28 14:18 循环输出字符 发布于:2022-04-27 23:33 反转字符串 发布于:2022-04-27 21:40 操作系统中的银行家算法 发布于:2022-04-27 17:53 7.宝藏女孩的美食 发布于:2022-04-27 11:29 语句块的分割运用 发布于:2022-04-26 18:25 求函数: x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10) 发布于:2022-04-26 16:49 简单并查集 发布于:2022-04-26 12:58 交换排序::快速排序,冒泡排序 发布于:2022-04-29 16:38 归并排序算法 发布于:2022-04-26 11:13 数组又大到小 发布于:2022-04-25 19:26 地堡承伤计算 发布于:2022-04-25 11:34 kmp算法 发布于:2022-04-24 22:41 dijkstra算法 发布于:2022-04-24 19:53 [更多]
显示目录

字符串



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

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入:


服务器已安装大部分常用的第依赖库,但仍可能存在一些未被安装的库, 可以通过本窗口立即安装所需依赖库。


请输入依赖库的名称:

请选择语言: