我需要帮助通过‘;strcpy&x2019;从整数生成指针,无需强制转换[-Wint转换]
我试图编译这段代码,但它给了我“传递'strcpy'的参数2使指针从整数变为整数,而无需转换[-Wint conversion]”。有人能告诉我需要做什么吗我需要帮助通过‘;strcpy&x2019;从整数生成指针,无需强制转换[-Wint转换],c,C,我试图编译这段代码,但它给了我“传递'strcpy'的参数2使指针从整数变为整数,而无需转换[-Wint conversion]”。有人能告诉我需要做什么吗 struct Book { char title[MAX_TITLE_LENGTH+1]; char author[MAX_AUTHOR_LENGTH+1]; int year; }; void menu_delete_book(void) { char temp[300]; int
struct Book
{
char title[MAX_TITLE_LENGTH+1];
char author[MAX_AUTHOR_LENGTH+1];
int year;
};
void menu_delete_book(void)
{
char temp[300];
int x,b;
int no_books;
fgets(temp,MAX_TITLE_LENGTH,stdin);
{
for(x = 0; x< no_books; x++)
{
if (strcmp (book_array[x].title, temp) == 0)
{
for(x=1; x < no_books -1; x++)
{
for(b = x + 1; b < no_books; b++)
{
strcpy(book_array[x].title, book_array[b].title);
strcpy(book_array[x].author, book_array[b].author);
strcpy(book_array[x].year, book_array[b].year);
}
}
}
}
}
no_books++;
struct Book
{
字符标题[最大标题长度+1];
字符作者[最大作者长度+1];
国际年;
};
作废菜单\删除\书籍(作废)
{
煤焦温度[300];
int x,b;
int no_书籍;
FGET(温度、最大标题长度、标准尺寸);
{
对于(x=0;x
它在抱怨这一行:
strcpy(book_array[x].year, book_array[b].year);
Book::year是一个整数,而不是字符串。请改为执行以下操作:
book_array[x].year = book_array[b].year;
警告告诉您传递给strcpy的整数值被隐式转换为指针。将int转换为指针几乎总是错误的,在您的情况下,整数肯定不包含有效的指针值。它抱怨这一行:
strcpy(book_array[x].year, book_array[b].year);
Book::year是一个整数,而不是字符串。请改为执行以下操作:
book_array[x].year = book_array[b].year;
警告告诉您传递给strcpy的整数值被隐式转换为指针。将
int
转换为pointer
几乎总是一个错误,在您的情况下,整数肯定不包含有效的指针值。请注意fgets
保留了换行符因此,在存储和比较之前,您应该先从输入缓冲区开始。Book::year是一个整数,而不是字符串,因此Book\u数组[x]。year=Book\u数组[b]。year
应该可以正常工作。@John正确的感谢方式是“接受”答案。请注意,fgets
保留了输入缓冲区中的换行符,因此在存储和比较之前,您应该这样做。Book::year是一个整数,而不是字符串,因此Book_数组[x]。year=Book_数组[b]。year
应该可以正常工作。@John正确的感谢方式是“接受”答案。