c语言运用数组的相关问题

void creatAccNum(int num)//根据实际人数自动生成账号
{
int n;
char s[20];//将num以字符形式保存
char N[20]="CSDN";
itoa(num,s,10); // itoa(int,char,要转换的十进制数)
strrev(s);//数组倒置
n=strlen(s);//长度
while(n<4)
{
s[n]='0';
n++;
}
s[n]='\0';
strrev(s);
strcat(N,s);//数字连接
printf("%s\n",N);
strcpy(users[num].AccName,N);//拷贝到用户账户里面
return;
}
这是我搜到的一个函数,不过不够简洁完善,无法运行。
出来这个错误

img

我想要的效果是:

img


有点难表述清楚
谢谢大家了!

直接用sprintf,用法跟printf一样,printf输出到屏幕,sprintf输出到一个字符串。

int A=0;
void self(int num)
{
  sprintf(hu[A].idnum,"CN%04d",num);
}

int main()
{

  for(A=0;A<10;A++)
    self(A+1);
}
  

可以看下 c参考手册中的 c语言--数组初始化