gpt4 book ai didi

c - 警告 : passing argument 2 of 'strcpy' makes pointer from integer without a cast [-Wint-conversion]|

转载 作者:行者123 更新时间:2023-11-30 16:18:30 32 4
gpt4 key购买 nike

我尝试声明该字符,但它不起作用。为什么没有出现输出?每次我完成插入输入时,程序都会崩溃。它显示(注意:预期为“const char *”,但参数的类型为“int”|)(警告:传递“strcpy”的参数2使指针来自整数而不进行强制转换[-Wint-转换]|)。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/**Functions**/
void info();
void mark();
void grade();
void report();

/**Variables**/
char stdID[15][20];
char subj[20][20];
char stdgrade[30][20];
int stdMark[30];
int subjTaken[30];


void mark()
{
printf("Enter subject taken : ");
scanf("%d", &subjTaken[i]);

for(j=0;j<subjTaken[i]; j++)
{
printf("\nEnter subject : ");
scanf("%s", &subj[j]);

printf("Mark for the subject : ");
scanf("%d", &stdMark[j]);
grade();
}
}
void grade()
{
if((stdMark[i]=0)&&(stdMark[i]<=39))
{
strcpy(stdgrade[i],'G');
}
else if(stdMark[i]<45)
{
strcpy(stdgrade[i], 'E');
}
else if(stdMark[i]<50)
{
strcpy(stdgrade[i], 'D');
}
else if(stdMark[i]<55)
{
strcpy(stdgrade[i], 'C');
}
else if(stdMark[i]<60)
{
strcpy(stdgrade[i], 'C+');
}
else if(stdMark[i]<65)
{
strcpy(stdgrade[i], 'B');
}
else if(stdMark[i]<70)
{
strcpy(stdgrade[i], 'B+');
}
else if(stdMark[i]<80)
{
strcpy(stdgrade[i], 'A-');
}
else if(stdMark[i]<90)
{
strcpy(stdgrade[i], 'A');
}
else if (stdMark[i]<=100)
{
strcpy(stdgrade[i],'A+');
}

}

最佳答案

将第二个参数放在双引号中。 'G' 是一个字符(数字),其中“G”是一个字符串(字符数组)。函数 strcpy 不会自动将字符转换为字符串。

so strcpy(stdgrade[i],'G');实际上应该是 strcpy(stdgrade[i],"G");

关于c - 警告 : passing argument 2 of 'strcpy' makes pointer from integer without a cast [-Wint-conversion]|,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55887062/

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