📜  C++字符串

📅  最后修改于: 2020-09-25 05:10:29             🧑  作者: Mango

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

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

C弦

在C编程中, 字符集合以数组的形式存储,C++编程也支持此功能。因此,它称为C弦。

C字符串是char类型的数组,它们以null 字符结尾,即\0 (ASCII码的null 字符值为0)。

如何定义一个C字符串?

char str[] = "C++";

在上面的代码中, str是一个字符串 ,它包含4个字符。

尽管“ C++ “具有3个字符,但空字符 \0会自动添加到字符串的末尾。

定义字符串的替代方法

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

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

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

char str[100] = "C++";

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

C++程序显示用户输入的字符串 。

#include 
using namespace std;

int main()
{
    char str[100];

    cout << "Enter a string: ";
    cin >> str;
    cout << "You entered: " << str << endl;

    cout << "\nEnter another string: ";
    cin >> str;
    cout << "You entered: "<

输出

Enter a string: C++
You entered: C++

Enter another string: Programming is fun.
You entered: Programming

请注意,在第二个示例中,仅显示“编程",而不是“编程很有趣"。

这是因为提取运算符 >>在C中作为scanf()起作用,并认为空格“"具有终止字符。

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

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

#include 
using namespace std;

int main()
{
    char str[100];
    cout << "Enter a string: ";
    cin.get(str, 100);

    cout << "You entered: " << str << endl;
    return 0;
}

输出

Enter a string: Programming is fun.
You entered: Programming is fun.

要读取包含空格的文本,可以使用cin.get 函数 。该函数有两个参数。

第一个参数是字符串的名称( 字符串的第一个元素的地址)和第二个参数是在阵列的最大大小。

在上面的程序中, str是字符串的名称, 100是数组的最大大小。

字符串对象

在C++中,您还可以创建一个用于保存字符串的字符串对象。

与使用char数组不同, 字符串对象没有固定的长度,可以根据需要进行扩展。

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

#include 
using namespace std;

int main()
{
    // Declaring a string object
    string str;
    cout << "Enter a string: ";
    getline(cin, str);

    cout << "You entered: " << str << endl;
    return 0;
}

输出

Enter a string: Programming is fun.
You entered: Programming is fun.

在此程序中,声明了字符串 str 。然后从用户询问字符串 。

除了使用cin>>cin.get() 函数,还可以使用getline()获取输入的文本行。

getline() 函数将输入流作为第一个参数, cinstr作为要存储的行的位置。

将字符串传递给函数

字符串被传递给函数以类似的方式数组传递给函数。

#include 

using namespace std;

void display(char *);
void display(string);

int main()
{
    string str1;
    char str[100];

    cout << "Enter a string: ";
    getline(cin, str1);

    cout << "Enter another string: ";
    cin.get(str, 100, '\n');

    display(str1);
    display(str);
    return 0;
}

void display(char s[])
{
    cout << "Entered char array is: " << s << endl;
}

void display(string s)
{
    cout << "Entered string is: " << s << endl;
}

输出

Enter a string:  Programming is fun.
Enter another string:  Really?
Entered string is: Programming is fun.
Entered char array is: Really?

在上面的程序中,要求输入两个字符串 。它们分别存储在strstr1 ,其中str是一个char数组,而str1是一个string对象。

然后,我们有两个功能display()其输出所述字符串上的字符串。

这两个函数之间的唯一区别是参数。第一个display() 函数将char数组作为参数,而第二个函数将字符串作为参数。

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