使用 cstring 将字符串转换为字符数组

Converting strings to char arrays using cstring

本文关键字:字符 数组 转换 字符串 cstring 使用      更新时间:2023-10-16

我有一个小任务,部分要求我以字符串的形式从文件中获取输入并将它们放入char数组中,以便我可以检查字符串是否在其末尾包含任何"*"字符。

我已经能够成功地从文件中提取字符串,但是我未能找到将它们放在 char 数组中以便我可以处理它们的方法。

如果有人告诉我如何使用 cstring 库将字符串放入字符数组,我将不胜感激。请记住,字符串取自文件,而不是用户输入。

我尝试的一些方法如下:

//Try 1
char CstringArray[] = LineFromFile;
//Try 2
char CstringArray[100] = LineFromFile;
//Try 3
ifstream Test("Test.txt");
Test>>CstringArray;
//Try 4
ifstream Test("Test.txt");
Test>>CstringArray[0];

谢谢

由于这是一项

作业,您的教授可能不会对您使用C++的所有功能感到满意,特别是如果您不理解它,但是由于它是一行,我想我会告诉您如何打印所有以星号结尾string。如果您已成功打开文件以ifstream Test您可以执行以下操作:

copy_if(istream_iterator<string>(Test), istream_iterator<string>(), ostream_iterator<string>(cout, " "), [](const auto& i) { return !empty(i) && i.back() == '*'; })

编辑:

  1. 我正在使用istream_iterator读取Testistream_iterator中的每个string,我立即对这些值进行操作,但是如果您需要首先将所有string保存到vector<string>您也可以这样做:vector<string> CstringArray{ istream_iterator<string>(Test), istream_iterator<string>() }
  2. 我正在使用ostream_iterator直接流式传输出我选择的string,而不是存储它们
  3. 我正在使用copy_if来迭代所有流式传输的string,仅选择符合给定条件的
  4. 我正在使用 lambda:[](const auto& i) { return !empty(i) && i.back() == '*'; }有条件地选择以星号字符结尾的非空字符串