我試圖從用戶獲得5個字符串,並將該字符串存儲到char字符串數組中,但是,當我嘗試使用該程序時,程序的輸出總是相同,用戶的最後一個值已經inputed ...寫入數值時數組「指針」?
見我的代碼:
#include <stdio.h>
int main()
{
int i = 0;
char *s[50];
char str[50];
for(i=0;i<5;i++)
{
fgets(str, 50, stdin);
s[i] = str;
}
for(i=0;i<5;i++)
printf("%s\n ", s[i]);
}
所以,我怎麼能解決這個問題,我怎樣才能把用戶digited到陣列的價值,而在其他時間打印價值觀?
使用strcpy(s [i],str)而不是s [i] = str –
對參數's'和'str'使用strcpy不正確;你不想將一組字符複製到指針數組中。 – ryanbwork
@ChristopherBales:你不能使用'strcpy()',除非有空間複製到...並且你沒有確定提供了這樣的空間。 –