gpt4 book ai didi

C++:以字符串数据类型创建一个字 "letter after letter"

转载 作者:行者123 更新时间:2023-11-30 03:26:26 24 4
gpt4 key购买 nike

我正在为考试学习 C++,有一件事困扰着我。
我有一个包含 25 个单词的文件(我们称之为“new.txt”)和一个包含 1000 个单词的文件(“words.txt”)。
我必须检查 new.txt 中的单词在 words.txt 中出现了多少次。在此之后,我必须检查 new.txt 的单词“镜像”在 words.txt 中出现了多少次(镜像表示从右到左的单词 => car = rac..)

我的想法是制作三个数组:newword[25]、words[1000]、mirror[25],然后从那里开始一个。

我知道如何使用“char”数据类型来做到这一点。但我想尝试用“字符串”类型来做。

代码如下:

string mirrors(string word) //function that writes the word from the back 
{
int dl=word.length();
string mir;

for (int q=0;q<dl;q++)
{
mir[q]=word[dl-q-1]; //first letter of a new word is a last letter of the original word
}

return mir;
}




int main()
{

ifstream in1 ("words.txt");
ifstream in2 ("new.txt");

string words[1000], newword[25], mirror[25]; //creating arrays


for (int x=0;x<1000;x++) //filling the array with words from words.txt
{
in1>>words[x];
}

for (int y=0;y<25;y++) //filling the array with words from new.txt
{
in2>>newword[y];
}

in1.close();
in2.close();


for (int z=0;z<25;z++)
{
mirror[z]=mirrors(newword[z]);
}

out.close();

return 0;
}

问题来了……当我改变字母的顺序时,“mirror”中的字符串不会使用普通 cout<

所以我的问题是......是否有字符串数据类型导致无法在一个接一个字母地创建单词字母后使用一个命令进行打印,或者有什么我不知道的东西?

因为单词在那里,所以在这个数组中创建。但是cout<

如果问题不清楚,我很抱歉,但这是我第一次在这里发帖......

最佳答案

string mirrors(string word) {
int dl = word.length();
string mir; // here you declare your string, but is's an empty string.
for (int q = 0; q < dl; q++) {
// by calling mir[q] you are referencing to the [0, 1 ... dl-1] char of empty string (so it's size = 0) so it's undefined bhv/error.
// mir[q]=word[dl-q-1]; //first letter of a new word is a last letter of the original word
mir = mir + word[dl - q - 1]; // you rather wanted to do smth like this
}
return mir;
}
  • @Johny Mop 指出,使用 new 作为变量名并不是一个好主意
  • Jbc to możesz też po polsku zadać pytanko w komentarzu :).

关于C++:以字符串数据类型创建一个字 "letter after letter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48308235/

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