问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2024-09-30 04:20

我来回答

1个回答

热心网友 时间:2024-10-08 05:21

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

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

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

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

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

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

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


#include<stdio.h>

#include<string.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(i<M)

    {

        str2[i]=getchar();

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

        if(i<N && str1[i]!=str2[i]) flag=0;

        i++;

    }

    str2[M]=0;

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

    return flag;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
帝舵手表乌鲁木齐哪里回收价格高? - 知乎 成都帝舵表回收实体店有哪些? 内江市有哪些景点 内江市旅游景点推荐一日游 内江必去的景点推荐 四川内江十大旅游景点 ...违章时身份证显示有吸毒记录怎么办,但是驾驶证属于正常 不可以处 ... 有哪些适合敏感肌的平价水乳值得推荐? 实验室酒精灯的酒精浓度 微信图片怎么合成一张图 我前天和一位怀疑患幽门螺旋杆菌胃病的患者一起吃饭.现在感觉有点不舒服... ...5个字符串,按由小到大(我想应该是strcmp函数比较)的顺序输出_百度知 ... 输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列... 电磁炉什么面板好 电磁炉面板哪种好 电磁炉有什么好坏之分吗? 我现在定投的基金是519688交银精选业绩太差,我想更换一只,选什么基金比 ... 交银精选519689是后收费的吗? 我在网上只找到了519688~~~ 519688交银精选今天是什么价格? 福山雅治获奖记录 求推荐福山雅治好听的歌 植田正治植田正治与福山雅治 ...檀香刑》《丰乳肥臀》《生死疲劳》均是txt版 邮箱为564995780@qq... ...檀香刑》《丰乳肥臀》《生死疲劳》均是txt版,邮箱为394447019@qq... ...檀香刑》《丰乳肥臀》《生死疲劳》均是txt版,邮箱为397220856@qq... 大脑灵活是什么意思啊? 怎样把用读卡器下载在内存卡上的歌移动到手机音乐播放器上 怎么把手机内存卡里的哥弄到手机的音乐播放器里? 普通手机内存卡的歌怎么样移到音乐播放器里 为何薛之谦在"My show"比赛中以"王子归来"的歌词表达渴望胜利的... ...组合每组3个数.不重复.比如1-5这五个数字排成123..234..不... ...如何与传入的普通字符串用strcmp()函数比较,或者用其它方式比较... (我不洒脱只是装英雄,那么爱你,怎可能一滴泪也没有)是什么歌啊?_... 酷睿i3-8100配GTX1050Ti能畅玩所有主流网游吗? 中国移动手机卡,实名制登记的,如果欠费后不去注销,后来会有事吗? 手机卡停机不用的结果是什么? 微信被对方删除了,我怎样才能知道? 先来后到是什么意思(先来后到是个成语吗) ...许可类别如何划分,压力容器制造许可证有哪几个及别 基金如何赚钱的方法 基金如何赚钱举例 新手如何投资基金赚钱 购买基金如何赚钱的 如何投资基金才会赚钱 老福特怎么解绑微信 河鱼是什么鱼 清江鱼是河鱼吗? 润田地产发展简史 浒新金榈湾浒新金榈湾基本信息 ...一个正方形,已知它的一个底面圆的面积是5平方厘米,这个圆柱的表面积... 一个圆柱体的侧面积展开后为正方形,已知它的一个底面圆的面积是5...