C++ 字符串

在本文中,您将学习如何在C中处理字符串。您将学习声明它们,对其进行初始化以及将它们用于各种输入/输出操作。

字符串是字符的集合。C ++编程语言中通常使用两种类型的字符串:

  • 作为字符串类对象的字符串(标准C ++库字符串类)

  • C字符串(C风格的字符串)

C 风格字符串

在C编程中,字符集合以数组的形式存储,C ++编程也支持这种形式。因此,它称为C 风格字符串(C-string)。

c -string是以null字符结尾的char类型的数组,即\0 (null字符的ASCII值为0)。

如何定义一个C字符串?

复制代码
char str[] = "C++";

在上面的代码中,str是一个字符串,它包含4个字符。虽然"c++"有3个字符,但是null字符\0被自动添加到字符串的末尾。

定义字符串的代替方法

复制代码
char str[4] = "C++";
     
char str[] = {'C','+','+','\0'};

char str[4] = {'C','+','+','\0'};

与数组一样,不需要使用为字符串分配的所有空间。例如:

复制代码
char str[100] = "C++";

示例1:使用C ++字符串读取单词

cpp 复制代码
#include<iostream>


int main() {
	char str[100];
	std::cout << "输入字符串:";
	std::cin >> str;
	std::cout << "您输入了:" << str << std::endl;

	std::cout << "\n输入另一个字符串:";
	std::cin >> str;
	std::cout << "您输入了:" << str << std::endl;
	return 0;
}

输出结果:

请注意,在第二个中,仅显示"hello",而不是"hello word xinxin"。这是因为提取运算符>>与C语言中scanf()方法一样,认为空格" "具有终止字符。

示例2:C ++字符串以读取一行文本

C ++程序读取并显示用户输入的整行。

cpp 复制代码
#include<iostream>


int main() {
	char str[100];
	std::cout << "输入字符串:";
	std::cin.get(str, 100);
	std::cout << "您输入了:" << str << std::endl;
	return 0;
}

运行结果:

要读取包含空格的文本,可以使用cin.get函数。该函数有两个参数。第一个参数是字符串的名称(字符串的第一个元素的地址),第二个参数是数组的最大容量。在上面的程序中,str是字符串的名称,100是数组的最大容量。

字符串对象

在C ++中,您还可以创建一个用于保存字符串的字符串对象。与使用char数组不同,字符串对象没有固定的长度,可以根据需要进行扩展。除了使用cin>>或cin.get()函数外,还可以使用getline()来获取输入的文本行。

示例3:使用字符串数据类型的C ++字符串

cpp 复制代码
#include <iostream>
#include<string>
using namespace std;

int main()
{
    //声明一个字符串对象
    string str;
    cout << "输入字符串: ";
    getline(cin, str);

    cout << "您输入了: " << str << endl;
    return 0;
}

运行结果:

将字符串传递给函数

cpp 复制代码
#include <iostream>
#include<string>
using namespace std;


void display(char s[]) {
    cout << "输入的字符数组为:" << s << endl;
}

void display(string s) {
    cout << "输入的字符串为:" << s << endl;
}

int main()
{
    string str1;//声明一个字符串对象
    cout << "输入字符串: ";
    getline(cin, str1);

    char str[100];
    cout << "输入另一个字符串: ";
    cin.get(str, 100);
    display(str1);
    display(str);
    return 0;
}

在上面的程序中,要求输入两个字符串。它们分别存储在str和str1中,其中str是一个char数组,而str1是一个string对象。然后,我们有两个函数display(),它们将字符串输出到字符串中。这两个函数之间的唯一区别是参数。第一个display()函数将char数组作为参数,而第二个函数将string作为参数。

此过程称为函数重载。了解有关函数重载的更多信息。

相关推荐
nnerddboy3 分钟前
Rust教程04:引用、借用与切片
开发语言·后端·rust
jerryinwuhan25 分钟前
《Python数据预处理》第四章
开发语言·python
长江&后浪27 分钟前
防火墙的描述
开发语言·网络·php
观无1 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)1 小时前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
间歇性努力持续性发呆的野生快乐选手1 小时前
栈的性质(进栈,出栈,访问)
数据结构·c++
我不是疯子是傻子1 小时前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
程序员老陆1 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
旖旎夜光1 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
霸道流氓气质2 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式