当前位置:首页 » 编程语言 » C语言求鞋码

C语言求鞋码

发布时间: 2023-03-31 01:43:56

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

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

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

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

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("方法一:输入同时比较 ");

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

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


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

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

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

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

else printf("前%d位字符%s不是是教材条码 ",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]==' ') continue;//位数不足,跳过回车键继续输入

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

i++;

}

str2[M]=0;

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

return flag;

}

热点内容
南方次元的解压 发布:2025-07-02 10:31:32 浏览:245
叶祖新编程 发布:2025-07-02 10:29:06 浏览:400
k4在哪里下载安卓 发布:2025-07-02 10:15:32 浏览:909
魔兽脚本破解版 发布:2025-07-02 10:15:30 浏览:995
锋云7800服务器无网络怎么办 发布:2025-07-02 10:03:53 浏览:1000
安卓哪个版本可以安装sd卡 发布:2025-07-02 09:58:09 浏览:984
存储包下行流量包 发布:2025-07-02 09:49:00 浏览:364
固态主控算法 发布:2025-07-02 09:38:27 浏览:12
计算机存储器尺寸是多少 发布:2025-07-02 09:32:15 浏览:146
危化品停车场消防器材如何配置 发布:2025-07-02 09:31:37 浏览:817