2016-10-01 64 views
-2

這裏是我的代碼的一部分:C語言:如何將字符串參數從命令行轉換爲單個字符數組?

int main(int argc, char*argv[]) 
{ 
//This section shows the statistic of the program 
int a; 

printf("The number of arguments is :%d \n", argc); 

for(a=0; a<argc; a++) 
{ 
     printf("argc %d is %s \n",a, argv[a]); 
} 

基於上面的代碼,第二個命令行參數的argv [1]將.txt文件。

第三個命令行參數argv [2]將作爲字符串輸入,如「monkey」。

我需要知道如何在第二個命令行參數「猴子」存儲爲單個字符數組所以看起來有些事情是這樣的:

char key[6]; 
    key[0]= 'm'; 
    key[1]= 'o'; 
    key[2]= 'n'; 
    key[3]= 'k'; 
    key[4]= 'e'; 
    key[5]= 'y'; 
+3

字符串在C_are_字符數組中。 –

+0

@從我看到的Mr.goosberry,argv [2] ='猴子'。那麼如果我想單獨打印每個字符,該怎麼辦? –

+0

「從我看到的......所以我該怎麼做......」 - 在問這樣的問題之前,只需看一本好的C書。 @ Mr.goosberry是完全正確的。 – Olaf

回答

-1

試試這個:

#include <stdio.h> 
#include <string.h> 


int main(int argc, char*argv[]) 
{ 
     //This section shows the statistic of the program 
     int a; 

     printf("The number of arguments is :%d \n", argc); 

     for(a=0; a<argc; a++) 
     { 
       printf("argc %d is %s \n",a, argv[a]); 
     } 

     size_t len = strlen(argv[2]); 

     int key[10]; 
     int i = 0; 
     for(i = 0; i < len; i++) 
     { 
       key[i] = argv[2][i]; 
     } 

     for (i = 0; i < len; i++) 
     { 
       printf("key[%d] = %c\n", i, key[i]); 
     } 
} 
+0

沒有幫助。僅限代碼答案 – Olaf

+0

在其他錯誤中,如果argv [2]佔用大於10個字節,則會在數組末尾寫入,導致嚴重的內存錯誤。擁有用於用戶輸入的固定大小的數組絕不是一個好主意。 – AlexPogue

+2

謝謝M.S Chaudhari真的想幫忙。 –

相關問題