我试图将txt文件中的单词放入字符串数组中。 但是strcpy()有一个错误。它是sais:'strcpy':不能将参数1从'std :: string'转换为'char *'。这是为什么?是不是可以在c ++中创建这样的字符串数组?
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void ArrayFillingStopWords(string *p);
int main()
{
string p[319];//lekseis sto stopwords
ArrayFillingStopWords(p);
for(int i=0; i<319; i++)
{
cout << p[i];
}
return 0;
}
void ArrayFillingStopWords(string *p)
{
char c;
int i=0;
string word="";
ifstream stopwords;
stopwords.open("stopWords.txt");
if( stopwords.is_open() )
{
while( stopwords.good() )
{
c = (char)stopwords.get();
if(isalpha(c))
{
word = word + c;
}
else
{
strcpy (p[i], word);//<---
word = "";
i++;
}
}
}
else
{
cout << "error opening file";
}
stopwords.close();
}
答案 0 :(得分:3)
我建议将strcpy (p[i], word);
更改为p[i] = word;
。这是C ++的处理方式,并利用std::string
赋值运算符。
答案 1 :(得分:0)
此处您不需要strcpy
。一个简单的任务就是这样做:p[i] = word;
。 strcpy
用于C风格的字符串,它是以空字符结尾的字符数组:
const char text[] = "abcd";
char target[5];
strcpy(target, text);
使用std::string
表示您不必担心正确调整数组的大小,也不必担心调用strcpy
等函数。