2013-09-26 3 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++ ; 
} 
} 

Мне нужно отделить пользователей, которые имеют discountcode или не путем ввода 3charofname и 1 цифры, например. cat2 если цифра больше, чем 0 так, пользователь скидка если цифра 0 так, что они не имеют скидку пример я есть cat0 bee1 ear2 eye0 при печати notdiscount: cat0, eye0 скидка: bee1, ear2о функции «STRCPY» с использованием

i проверить цифру по isdigit, и у меня проблема с именем пользователя copy by 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

Использование 2D массивов как:

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

где N является максимальное количество пользователей, вы можете #define это до некоторого значения.

То, что вы пытаетесь сделать, это:

char discountUser[32]; 

Это строка, если вы используете char discountUser[i] вы имеете в виду char (один символ, а не строка) по индексу i в строка discountUser.

Теперь strcpy ожидает строку в качестве входных данных для обоих его аргументов, поэтому вы не можете передать discountuser[i] как его вход.

Когда вы объявляете массив 2D, как я сказал выше, discountuser[i] будет относиться к string (на самом деле dicountuser[i] будет выступать в качестве char указателя), так что теперь вы имеете право передать его в качестве аргумента strcpy.

+0

# 0xF1 большое спасибо – Barbiyong

Смежные вопросы