當前位置:首頁 » 編程語言 » 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-10-18 17:07:23 瀏覽:263
手機說出密碼怎麼用 發布:2025-10-18 16:55:48 瀏覽:863
字元代替c語言 發布:2025-10-18 16:47:32 瀏覽:861
夜神模擬器哪個版本安裝安卓5 發布:2025-10-18 16:30:24 瀏覽:699
php學校培訓 發布:2025-10-18 16:23:02 瀏覽:932
安卓手機怎麼拍照去除美顏 發布:2025-10-18 16:12:00 瀏覽:400
lol英雄腳本 發布:2025-10-18 15:45:12 瀏覽:49
聯想安卓助手怎麼樣 發布:2025-10-18 15:41:41 瀏覽:767
安卓游戲平台哪個沒有廣告 發布:2025-10-18 15:39:21 瀏覽:863
手機和耳機的配置不一樣怎麼找 發布:2025-10-18 15:31:36 瀏覽:949