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
我通过isdigit检查数字,我有strcpy复制用户名的问题。 感谢帮助 。 :
答案 0 :(得分: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
。