0

嗨,我正在为我的班级做一个刽子手项目,我遇到了一个问题。我要做的是从文件中获取单词列表,然后将一个随机单词放入 char 数组中,但我不确定我应该如何将文本从字符串数组转换为 char 数组我的代码目前看起来像这样

#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;

int main(){
   ifstream infile;
   string words[25];
   string wordss;
   char cword[];
   int index=0;
   infile.open("c:\\words.txt)
   while (infile>>words){
         words[index]=words;
         index=index+1;



   }





}

现在,最初我必须通过随机选择的数字(如 cword=words[0])将 cword 数组简单地制作为单词数组之一的随机单词,但这不起作用。所以我想知道如何将从字符串数组中选择的单词转换为用于 char 数组?

4

1 回答 1

0

应该使用 char* cword 而不是 char cword[],这将允许您在为其分配内存后只存储一个单词。假设您的字长为 10,那么您将写为 cword = new char[10]; 不要忘记删除delete [] cword后面分配的内存;

String 也可以做你想做的事情,而不需要转换成 char[]。例如,您有:-

string cword = "Hello"
cout<<cword[2]; // will display l
cout<<cword[0]; // will display H

通常类型转换是通过使用以下 2 个语句来完成的。

static_cast<type>(variableName);   // For normal variables
reinterpret_cast<type*>(variableName);  // For pointers

示例代码可以是:-

ifstream infile;
char words[25][20];

int index=0;
infile.open("c:\\words.txt");
while (infile>>words[index]){
   cout<<words[index]<<endl;    // display complete word
   cout<<endl<<words[index][2];  // accessing a particular letter in the word
   index=index+1;

为了写出好的代码,我建议你只坚持一种数据类型。对于这个项目。

于 2013-11-15T08:03:40.553 回答