使用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]; 

非常感谢您

+0

您好,欢迎来到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

+0

似乎我总是问错误的问题,你能帮我@RawN明白我在做什么错,我继续得到负面声誉和人们不回答我的问题? 谢谢 –

+0

首先在上面的文字中没有问题。如果这是一项任务,那么您应该提供迄今为止所尝试的内容。上面的例子可能看起来微不足道,也许dvoters希望你谷歌那部分。提出具体问题,提供一个MCVE,遵循指导原则。不要太担心降价,我们都经历过(现在仍然如此)。 – 2017-01-03 12:59:00

因为这是一个任务,你的教授可能不会高兴你使用的是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每个stringTest阅读和istream_iterator,我立即对这些值进行操作,但是如果您需要将所有string s保存到vector<string>,您也可以这样做:vector<string> CstringArray{ istream_iterator<string>(Test), istream_iterator<string>() }
  2. 我使用的是ostream_iterator直接流出来我选择string真是让人不是将它们存储
  3. 我使用copy_if超过遍历所有string S中的流中,只选择那些符合给定的标准
  4. 我使用lambda:[](const auto& i) { return !empty(i) && i.back() == '*'; }有条件地选择以星号结尾的非空字符串
+0

你说得对,如果我使用这个,他会不高兴,但是如果你愿意向我解释它,我仍然希望了解它,我试图弄清楚自己并操纵它,取得一点成功。 –

+0

@BlacKnightBK我已经添加了一些链接到我用来完成这个C++工具。如果你想了解他们,你需要查看文档。如果您可以花时间了解这些工作方式,那么您应该能够使用教练可能期望的原始方法解决您的问题。 –

+0

非常感谢:) 这确实有帮助但是我需要一些时间才能弄清楚 –