关于'strcpy'功能使用

时间:2013-09-26 07:42:31

标签: c arrays strcpy

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复制用户名的问题。 感谢帮助 。 :

1 个答案:

答案 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