出于某种原因,在构建程序时,它说我有此错误:
error: invalid conversion from 'char' to 'const char*' [-fpermissive]
strcpy(phrase[counter].word, ch);
我不太确定编译器的含义,我尝试将更char ch
改为const char ch
,但这似乎无法解决问题。如果有人可以阐明这个问题,那将是很好的。
这是您可以参考的代码:
const char* clean_word(void);
void create_word(struct Word_setup phrase[], FILE *fp)
{
char ch;
fscanf(fp, "%s", &ch);
strcpy(phrase[counter].word, ch);
strcpy(phrase[counter].word, clean_word());
}
const char* clean_word()
{
int i;
const char *ch = phrase[counter].word;
ch = phrase[counter].word;
for (i = 0; i < M; i++)
{
if (phrase[counter].word[i] == 39 || isalpha(phrase[counter].word[i])) //39 is the ASCII value for: '
i = i; //Just to be there, no reason to it. I just want the program to do nothing if its a letter or '
else
phrase[counter].word[i] = '\0';
}
return ch;
}
同样,如果您想知道这是做什么用的,我正在构建一个程序,该程序将扫描*.txt
文件,然后打印出出现次数最多以及出现次数最多的单词。
如果您已经阅读了我的旧文章,我决定尝试编写它,而不必在每次填充数组时都重新分配空间,我只是将其设置为最多200个不同类型的单词。完成后,我将更改程序,以便每次数组填满时都重新分配空间。
可能是...
void create_word(struct Word_setup phrase[], FILE *fp)
{
fscanf(fp, "%s", phrase[counter].word);
clean_word();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句