2013-09-26 79 views
0
char input[32]; 
char name[32]; 
char discountUser[32];//not sure to using about arrays. 
char notDiscountUser[32];//not sure to using about arrays. 
int i,j; 
int len; 
fgets(input,32,stdin); 
sscanf(input,"%s",name); 
len = strlen(name); 
for(i=0,j=0; i < len; i++) 
{ 
if(isdigit(name[i])) 
{ 
    digits[j] = name[i]; 

    if (digits[j] > 48) 
    { 
     strcpy(discountUser[i],name); //i want to stored the name at i index 
     printf("you have discount code\n"); 
    } 
    else if (digits[j] <= 48) 
    { 
     strcpy(notDiscountUser[i],name); //i want to stored the name at i index 
     printf("you don't have discount code\n"); 
    } 
    j++ ; 
} 
} 

我需要通過輸入3charofname和1個數字來區分有折扣碼或不具有 的用戶,例如。 CAT2 如果數字大於0,因此,用戶紛紛打折 如果數字爲0,因此,他們沒有折扣 比如我有cat0 bee1 EAR2 eye0 當我打印 notdiscount:cat0,eye0 優惠:bee1,EAR2關於'strcpy'功能使用

我檢查數字由isdigit和我有問題與複製用戶名由strcpy。 感謝您的幫助。 :]

+0

在strcpy之前需要放置**嗎? –

+0

BTW char input [32]是一個數組,char discountUser [32] [32]是一個矩陣。所以32行32列 –

+0

數字[j]是什麼?我想你還需要閱讀strcpy如何工作:http://www.cplusplus.com/reference/cstring/strcpy/ –

回答

0

使用二維數組爲:

char discountUser[N][32]; 
char notDiscountUser[N][32]; 

其中N是用戶的最大數量,可以#define它一定的價值。

你所要做的是:

char discountUser[32]; 

這是一個字符串,如果你使用char discountUser[i]你在指數i在參照char(單個字符,而不是字符串)字符串discountUser。現在

strcpy需要一個輸入到它的兩個參數,因此你不能通過discountuser[i]作爲其輸入。

當你聲明一個二維數組,正如我上面說,discountuser[i]將指string(實際上dicountuser[i]將作爲char指針),所以現在你可以把它作爲參數傳遞給strcpy

+0

#0xF1非常感謝 – Barbiyong