【发布时间】:2018-05-07 21:31:48
【问题描述】:
我尝试编译这段代码,但它给了我“传递‘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 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++;
【问题讨论】:
-
请注意,
fgets保留输入缓冲区中的换行符,因此您应该在存储和比较之前remove that。 -
Book::year 是一个整数,而不是字符串,所以
book_array[x].year = book_array[b].year应该可以正常工作。 -
@John 正确的感谢方式是“接受”答案。
标签: c