将文本存储在char数组中,然后比较数组的内容

时间:2019-03-22 06:54:47

标签: c++

我试图弄清楚如何将用户输入存储到char数组中。例如,用户输入:hello,然后char array [0] =“ hello”;然后,当他再次输入“ hello”时,它就不会插入到char数组中,因为它已经在数组中了。

new_df =df.set_index('title').filter(like='pancakes', axis = 0).reset_index()

我需要一个示例程序

2 个答案:

答案 0 :(得分:1)

使用c ++的示例代码将如下所示,因为这是C ++,我们不仅可以使用C ++提供的功能,例如std::stringstd::vector和许多其他有用的算法,例如std::find在STL中实现。希望这就是你想要的。

#include <string> // for std::string
#include <vector> // for std::vector
#include <iostream> // for std::cout, std::cin, and std::endl;
#include <algorithm> // for std::find

int main() {
    std::vector<std::string> array;

    std::string line;
    std::cout << "Input : ";

    while(std::getline(std::cin, line)) {
        if (std::find(array.begin(), array.end(), line) == array.end()) { // If we can't find the string in the array
            array.push_back(line);
            std::cout << "{ ";
            for (std::string str: array) {
                std::cout << str << ", ";
            }
            std::cout << "}" << std::endl;
        } else {
            std::cout << "Output : Don't Insert" << std::endl;
        }
    }
}

答案 1 :(得分:1)

您可能会使用标准容器使用更多的C ++方式:

#include <iostream>
#include <set>
#include <string>

int main()
{
    std::string buffer;
    std::set<std::string> data;

    std::cin >> buffer;
    while (buffer != "quit")
    {
        if (data.find(buffer) == data.end())
        {
            auto res = data.insert(buffer);
            if (! res.second)
                std::cerr << "ERROR:: Could not insert string '" << buffer << "'." << std::endl;
        }
        else
            std::cout << "WARNING:: String '" << buffer << "' already found." << std::endl;
        std::cin >> buffer;
    }
    return 0;
}

否则,您应该采用C风格的思维方式:

  • 将字符串存储到缓冲区
  • 分配新的char数组并将其放入数组列表
  • 使用strcmp()函数遍历列表以查找字符串是否已经存在
  • 不要忘记在程序结束时清理任何动态分配的内存-这会导致内存泄漏