21xrx.com
2024-09-20 00:09:23 Friday
登录
文章检索 我的文章 写文章
如何在C++中输入未知数量的字符串?
2023-07-02 07:51:39 深夜i     --     --
C++ 输入 字符串 未知数量 循环

在C++中,我们有多种方法可以输入未知数量的字符串。这篇文章将介绍几种常见的方法,让你能够在程序中灵活地处理各种字符串数量。

1. 使用vector容器:vector是一个在C++中非常有用的容器,它可以动态分配内存,可以容纳可变数量的元素,并且可以方便地添加、删除和访问元素。在输入未知数量的字符串时,我们可以创建一个vector容器,然后使用循环不断地从用户处输入字符串,并将字符串添加到vector容器中。

例如,下面是一个从用户处输入未知数量的字符串,并将其存储在vector容器中的代码:


#include <iostream>

#include <vector>

using namespace std;

int main() {

  vector<string> strings; // 创建一个字符串vector

  string input; // 存储用户输入的字符串

  while (cin >> input) { // 循环读取用户输入

    strings.push_back(input); // 将字符串添加到vector中

  }

  // 输出所有输入的字符串

  for (string s : strings)

    cout << s << endl;

  

  return 0;

}

2. 使用动态数组:动态数组是一个可以在运行时动态分配内存的数组,可以用来存储一个无限数量的字符串。我们可以先创建一个指针数组,然后使用循环动态分配内存,并输入字符串到对应的内存空间中。

以下是一个使用动态数组在C++中输入未知数量的字符串的示例代码:


#include <iostream>

using namespace std;

int main() {

  string* strings = new string[100]; // 创建一个可以容纳100个字符串的指针数组

  int num = 0; // 存储输入的字符串数量

  while (cin >> strings[num]) { // 在循环中输入字符串并将其存储在动态数组的对应位置中

    num++; // 每次循环后字符串数量+1

  }

  // 输出所有输入的字符串

  for (int i = 0; i < num; i++) {

    cout << strings[i] << endl;

  }

  delete[] strings; // 释放动态数组占用的内存

  return 0;

}

3. 使用字符串流:字符串流是一种在内存中操作字符串的流,可以将字符串当做流进行输入输出操作。我们可以使用字符串流从用户处输入未知数量的字符串,并将其存储在一个vector或动态数组中。

以下是一个使用字符串流在C++中输入未知数量的字符串的示例代码:


#include <iostream>

#include <sstream>

#include <vector>

using namespace std;

int main() {

  vector<string> strings; // 创建一个字符串vector

  string input; // 存储用户输入的字符串

  getline(cin, input); // 一次性读取用户输入的所有字符串

  istringstream ss(input); // 创建一个字符串流

  string s; // 存储每个输入的字符串

  while (ss >> s) { // 在循环中从字符串流中读取字符串

    strings.push_back(s); // 将字符串添加到vector中

  }

  // 输出所有输入的字符串

  for (string s : strings)

    cout << s << endl;

  

  return 0;

}

以上是在C++中输入未知数量的字符串的几种常见方法。通过使用这些方法,你可以轻松地处理不定数量的字符串,极大地增强程序的灵活性和实用性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复