使用cstring将字符串转换为字符数组
我有一个小的任务,这部分需要我以字符串的形式从文件中获取输入,并将它们放入char数组中,以便检查字符串是否包含任何'*'字符它的结束。使用cstring将字符串转换为字符数组
我已经能够从文件中成功提取字符串,但是我没有找到一种方法将它们放置在字符数组中,以便我可以处理它们。
如果有人让我知道如何使用cstring库将字符串放入char数组,我将不胜感激。请记住,字符串是从文件中获取的,而不是用户输入。
一些我试过的方法如下:
//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
每个string
在Test
阅读和istream_iterator
,我立即对这些值进行操作,但是如果您需要将所有string
s保存到vector<string>
,您也可以这样做:vector<string> CstringArray{ istream_iterator<string>(Test), istream_iterator<string>() }
- 我使用的是
ostream_iterator
直接流出来我选择string
真是让人不是将它们存储 - 我使用
copy_if
超过遍历所有string
S中的流中,只选择那些符合给定的标准 - 我使用lambda:
[](const auto& i) { return !empty(i) && i.back() == '*'; }
有条件地选择以星号结尾的非空字符串
你说得对,如果我使用这个,他会不高兴,但是如果你愿意向我解释它,我仍然希望了解它,我试图弄清楚自己并操纵它,取得一点成功。 –
@BlacKnightBK我已经添加了一些链接到我用来完成这个C++工具。如果你想了解他们,你需要查看文档。如果您可以花时间了解这些工作方式,那么您应该能够使用教练可能期望的原始方法解决您的问题。 –
非常感谢:) 这确实有帮助但是我需要一些时间才能弄清楚 –
您好,欢迎来到SO。请[参观](http://*.com/tour)并阅读[帮助页面](http://*.com/help)。这里有一个不错的[C++书籍]列表(http://*.com/questions/388242/the-definitive-c-book-guide-and-list)。 – 2017-01-03 10:01:58
似乎我总是问错误的问题,你能帮我@RawN明白我在做什么错,我继续得到负面声誉和人们不回答我的问题? 谢谢 –
首先在上面的文字中没有问题。如果这是一项任务,那么您应该提供迄今为止所尝试的内容。上面的例子可能看起来微不足道,也许dvoters希望你谷歌那部分。提出具体问题,提供一个MCVE,遵循指导原则。不要太担心降价,我们都经历过(现在仍然如此)。 – 2017-01-03 12:59:00