問題是,我實際上並不知道熱處理指針數組,我這樣做,它傳遞給數組地址的位置,所以我總是在每個位置,最後一個輸入。但如果我使用*運算符,它只會傳遞第一個字符..所以我怎麼做?在指針數組中輸入字符串
int main(void) {
void prompt_str(const char *str[], char *const copy); //prototype
const char *str[ 20 ]= { '\0' };
const char *copy= 0;
//prompt stringa
prompt_str(str, ©);
} //end main
void prompt_str(const char *str[], char *const copy) { //definition
size_t n_str= 0, i= 0;
do {
printf("Insert a string\n:");
fgets(copy, 100, stdin);
i= (strlen(copy)- 1); //get length
copy[ i ]= '\0'; //remove \n
str[ n_str++ ]= copy; //put string into pointer of array
} while (n_str< 3);
}
你沒有足夠的空間來存儲輸入,'爲const char *副本= 0;' - >'字符複製[100];' –
@KeineLust,這是不正確的..在複製中的原因我得到的字符串,我不想使用定義的數組,使其浪費空間,指向一個字符,它只需要我輸入它的元素。 – dnt994
好的你是對的,祝你好運存儲100個字節到一個地址:) –