您的位置:

c语言做条形码,C#条形码

本文目录一览:

输入一个条码判断是不是教材教材的条码规则为长度13位前缀9787用c语言编程求解答

按照问题,程序应包含以下功能:

一、条码字符串输入及验证。

二、前缀字符串和条码字符串比较,方法很多:

1、可遍历字符串单字符比较。

2、将条码字符串第5个字符置0,然后用strcmp函数比较。

3、在输入条码字符串同时验证前4位的输入。

下面用两种方式代码演示:

#includestdio.h

#includestring.h

#define M 13//条码最大位数

#define N 4//规则前缀位数

#define NS "9787"//前缀,位数必须与N对应

int inputAndCheck(char str1[],char str2[]);//方法一:输入的同时比较(自带位数限制)。是返回1,不是返回0

int checkStr(char str1[],char str2[]);//方法二:输入后比较用字符串函数比较(自带位数检测,小于M位返回0,多余13位截取),是返回1,不是返回0

int main()

{

  char s1[N+1]=NS,s2[M+1]={0};

  printf("方法一:输入同时比较\n");

  if(inputAndCheck(s1,s2))printf("前%d位字符%s是教材条码\n",M,s2);

  else printf("前%d位字符%s不是是教材条码\n",M,s2);

  printf("\n方法二:输入后比较用字符串函数比较\n");

  memset(s2,0,sizeof(char)*(M+1));//同一个变量用于两种方法演示,这里清空一下,实际代码可删除!!

  printf("演示用的scanf函数输入,请不要超出%d位:",M),scanf("%s",s2);//注意:checkStr函数会检测参数长度,但这里用scanf输入,其本身不能数组越界

  if(checkStr(s1,s2))printf("前%d位字符%s是教材条码\n",M,s2);

  else printf("前%d位字符%s不是是教材条码\n",M,s2);

  return 0;

}

int checkStr(char str1[],char str2[])

{

  char cSave;

  int flag=0;

  if(strlen(str2)M) return flag;

  cSave=str2[N];

  str2[N]=0;

  flag=strcmp(str1,str2);

  str2[N]=cSave;

  str2[M]=0;//多余截取

  return !flag;

}

int inputAndCheck(char str1[],char str2[])

{

  int i=0,flag=1;

  printf("输入13位(多余位数将被忽略):");

  while(iM)

  {

      str2[i]=getchar();

      if(str2[i]=='\n') continue;//位数不足,跳过回车键继续输入

      if(iN str1[i]!=str2[i]) flag=0;

      i++;

  }

  str2[M]=0;

  while(getchar()!='\n');//清空输入缓存,避免干扰后续字符串输入

  return flag;

}

怎么样用C语言做条形码

就是生成一组数字,把数字打印出来就ok了,不过具体是有难度的没用c没写过这个

怎样用C语言做一个条形码

现在你完全不需要用C语言去写啊,因为现在的软件是很方便的啊,如果你要用,那我就给你介绍一宽软件

名字年可以搜索超级记事本就可以下载的啊

条码生成C语言编程

我可以给你个思路,第一步去找到你要的二维码的规范,第二步把数据按照规范转化为二维数组,第三步,把二维数组按照图形文件的规范用二进制储存为图片

参考资料: