我所試圖做的就是添加一個命令行參數轉換爲一個數組作爲indvidual字符。 因此,當用戶運行該程序./program bacon
「臘肉」被存儲在一個數組添加命令行字符串數組是不同的字符
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解釋的不夠好我是新來編程。
我所試圖做的就是添加一個命令行參數轉換爲一個數組作爲indvidual字符。 因此,當用戶運行該程序./program bacon
「臘肉」被存儲在一個數組添加命令行字符串數組是不同的字符
array k[]= {'b', 'a', 'c', 'o', 'n'};
我希望我解釋的不夠好我是新來編程。
所以,我知道你是編程新手,但肯定這看起來很熟悉,不是嗎?
int main (int argc, char **argv) {
// ...
}
char **argv
是一個指向字符指針,但是你的目的,你可以認爲這是char *argv[]
相當。所不同的是微妙的,但值得一提的,因爲這需要注意的是要了解字符串C. char *argv[]
的工作是顯式類型爲char指針數組的方式是至關重要的,而char **argv
可能是一個數組,但你不會知道,直到你嘗試像這樣訪問它。鑑於這是您的主要功能,可以認爲這將始終適當地實例化。
無論如何,移動過去的切線,我們有我們的主要功能null結尾的字符串的char **argv
陣列。從你的問題,我可以看到一條我們應該遵循的簡單路徑。我會假定只有一個參數是可以預料的(否則你應該能夠執行處理不同情況的案例)。
argv[1]
)的長度。argv[1]
中的字符填充數組。在我們main
功能,我們的argv[1]
長度存儲n
,並宣佈我們的規模n
的陣列。然後,我們遍歷第一個字符串,逐個字符,並將每個字符存儲到我們數組的下一個打開的插槽中。最後,我們重複我們的循環並打印出我們陣列中的每一項,以便我們驗證它的工作原理。
int main (int argc, char *argv[]) {
int n = strlen(argv[1]);
char arr[n];
int i;
for (i = 0; i < n; i++)
arr[i] = argv[1][i];
for (i = 0; i < n; i++)
printf("%c ", arr[i]);
printf("\n");
}
希望這會有所幫助。乾杯。
謝謝,這幫助我瞭解到底發生了什麼,我得到了它的工作! – Yamaha32088
使用參數傳遞給主。你已經得到一個數組argv [1],它爲你做了這個。我想你讀過一些文章像這樣的上手,最好 - http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html
顯示您的代碼。 – Musa