gpt4 book ai didi

c - 两者都是 char 但我得到,从 `char' 到 `char*' 的无效转换

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

我正在编写一个仅使用 C 的程序,我是一名学生,只有 5 个月的培训时间。它将打开一个文件,将行存储为字符串,计算我使用的数组中的字符串数量,然后关闭文件。这是我写的函数。

char animalsarray[100][100], xstring='x';
int numlines1;

void preload(){
int j;
strcpy(animalfile,"animals.txt.");
animals=fopen(animalfile,"r");
if(animals==NULL){
printf("ERROR: animals.txt not found!");
exit(13);
}
for(j=0;j<100;j++){
strcpy(xstring, animalsarray[j][0]);
}
j=0;
while(sscanf(animalsarray[j][0],100,animals)!= EOF){
j++;
}
for(j=0;j==100;j++){
if(animalsarray[j][0]!='x'){
numlines1++;
}
}
fclose(animals);

}我遇到的问题是这样的

error: invalid conversion from char' to char*'

error: initializing argument 1 of `char* strcpy(char*, const char*)'

error: invalid conversion from char' to const char*'

error: initializing argument 2 of `char* strcpy(char*, const char*)'

将单个字符放入所有字符串中是否有问题?

最佳答案

您不仅混淆了 strcpy 中的顺序或参数(它是目的地,然后是源,因此 strcpy(xstring, Animalsarray[j][0]); 会其参数反转),您将 charpointer-to-char 混淆了。

xstring 是一个字符,您尝试将其用作字符串。

如果要将数组的所有元素设置为 'x' 字符,请尝试使用 memset

for(j=0;j<100;j++){
memset(&animalsarray[j][0], 100, 'x');
}

尽管这不会将数组的最后一个字符设置为 '\0',因此您没有以 0 结尾的字符串。为此,请在 memset(...); 之后添加 animalsarray[j][99] = '\0';

如果您确实想使用 xstring 作为以 0 结尾的字符串,则必须这样初始化:

*xstring="x";

关于c - 两者都是 char 但我得到,从 `char' 到 `char*' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23747262/

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