gpt4 book ai didi

c++ - 从 C++ 文件中读取后,如何将常规字符串数组转换为 const 字符串数组?

转载 作者:行者123 更新时间:2023-11-28 05:04:36 25 4
gpt4 key购买 nike

我有一个字符串数组,我从一个函数传递到我的 main 中,我想将该数组更改为常量,一旦它在 main 中,这样其他函数就无法操作它。我不知道该怎么做。我是一名学生,不能使用指针来完成这项作业。这是我所拥有的:

//declare variables
string name;
const int size = 11;
string ans[size];
const string corrAns[size] = { "C++","for","if","variable","function", "return",
"array","void","reference","main", "prototype" };
const string studAns[size];
double percent;

// read file
readFile(name, ans, size);

// calculate percentage
percent = calculatePercentage(corrAns, studAns, size);

// print out report
printReport(name, percent, corrAns, studAns, size);

system("Pause");
return 0;
}

程序的其余部分按照我想要的方式工作,但是我不确定我应该如何有效地将 ans 传输到 studAns 并且没有成功在任何地方寻找答案。

最佳答案

How do I make a regular string array into a const string array after it has been read from a file in C++?

你真的不能。您可以做的是通过传递 const std::string* 来防止后续操作发生变化。指针或 const std::string[]函数的数组。


但是,惯用的 C++ 方法根本不使用原始数组,而是使用 std::vector<std::string>。相反:

std::vector<std::string> ans(size);
const std::vector<std::string> corrAns = {
"C++","for","if","variable",
"function", "return",
"array","void","reference","main", "prototype" };
std::vector<std::string> studAns(size);

为了防止函数改变值,你应该有这样的签名

double calculatePercentage(
const std::vector<std::string>& corrAns
, const std::vector<std::string>& studAns);

void printReport(
const std::string& name, double percent
, const std::vector<string>& corrAns
, const std::vector<string>& studAns);

请注意 size不需要,std::vector已经在跟踪它了。

关于c++ - 从 C++ 文件中读取后,如何将常规字符串数组转换为 const 字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com