我正在處理一些代碼需要一個字符串作爲輸入並返回它顛倒。中止陷阱:在MacOS上使用strcpy時在C中的6中
當我輸入一個字符串,我得到一個「中止陷阱:6」的錯誤。我認爲問題在於我使用(誤用?)strcpy,但GDB沒有幫助,關於這個錯誤和strcpy的其他問題並沒有幫助我理解爲什麼我得到這個錯誤。
我已經添加了一些評論給我的代碼解釋了預期的功能。
感謝您提供任何幫助或閱讀材料,您可以提供!
#include <stdio.h>
#include <string.h>
int main()
{
char line[1024];
fgets(line,sizeof(line),stdin);
int size = strlen(line);
for(int I = 0; I <size-I;I++)
{
char temp;
int relative_size = size-I;
strcpy(&temp,&line[I]);//??copies Ith character of line to temp??
strcpy(&line[I],&line[relative_size]); //??swaps characters at [I] and [size-I]??
strcpy(&line[relative_size],&temp);
}
printf("%s", line);
return 0;
}
'int relative_size = size-I;' - >'int relative_size = size-I-1;','strcpy(&temp,&line [I]);' - >'temp = line [I]; '等等。 – BLUEPIXY
@BLUEPIXY完美的工作!非常感謝。 – Luciano