使用 cstring 将字符串转换为字符数组
Converting strings to char arrays using cstring
我有一个小任务,部分要求我以字符串的形式从文件中获取输入并将它们放入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() == '*'; })
编辑:
- 我正在使用
istream_iterator
读取Test
和istream_iterator
中的每个string
,我立即对这些值进行操作,但是如果您需要首先将所有string
保存到vector<string>
您也可以这样做:vector<string> CstringArray{ istream_iterator<string>(Test), istream_iterator<string>() }
- 我正在使用
ostream_iterator
直接流式传输出我选择的string
,而不是存储它们 - 我正在使用
copy_if
来迭代所有流式传输的string
,仅选择符合给定条件的 - 我正在使用 lambda:
[](const auto& i) { return !empty(i) && i.back() == '*'; }
有条件地选择以星号字符结尾的非空字符串
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- 字符数组中的元素数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用字符数组作为 Map 中的键
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 按顺序声明的字符数组重叠
- 在 C++ 中字符串的大小与字符数组的大小
- 寻找一种更好的方法来表示无符号字符数组
- 如何打印 2D 字符数组C++
- 从字符数组的元素中减去'a'是什么意思
- 我是否不正确地集中了这些字符数组?