北航2016C語言|程序設(shè)計題七

七憎兽、程序設(shè)計題(本題15分)
??字符串處理函數(shù)strmap(s1,s2)可以比較兩個字符串的大小,其字符的大小是以ASCII碼表上的順序決定的。該函數(shù)首先將s1第一個字符值減去s2的第一個字符值,若相差值為0則繼續(xù)比較對應(yīng)的下一個字符扭屁,若不為0則該差值就是函數(shù)的最終結(jié)果悲没。
??請參照改函數(shù)的實現(xiàn)原理惩淳,寫出一個新的字符串比較函數(shù)strcmp_nc(s1,s2),該函數(shù)的功能與strcmp類似册倒,但不區(qū)分字符串中的大小寫字母,例如字符a和字符A相等商源。
??要求:實現(xiàn)過程中不得使用任何已有的關(guān)于字符和字符串處理的庫函數(shù)车份。

首先我們看看下原生strcmp函數(shù)的參數(shù)方法。

C 庫函數(shù) - strcmp()
描述
C 庫函數(shù) **int strcmp(const char str1, const char str2)str1 所指向的字符串和 str2 所指向的字符串進行比較牡彻。
聲明
下面是 strcmp() 函數(shù)的聲明扫沼。
參數(shù)
str1 -- 要進行比較的第一個字符串。
str2 -- 要進行比較的第二個字符串庄吼。
返回值
該函數(shù)返回值如下:
如果返回值 < 0缎除,則表示 str1 小于 str2。
如果返回值 > 0总寻,則表示 str2 小于 str1器罐。
如果返回值 = 0,則表示 str1 等于 str2渐行。

python3.7版

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def strcmp_nc(s1,s2):
    #取出兩字符串的長度
    s1_num = len(s1)
    s2_num = len(s2)
    #循環(huán)兩字符串并做比較
    while s1_num and s2_num:
        s1_ch = s1[-s1_num]
        s2_ch = s2[-s2_num]
        num = A_a(s1_ch) - A_a(s2_ch)
        if num == 0:
            s1_num -= 1
            s2_num -= 1
        else:
            return num
    #循環(huán)結(jié)束仍然沒有返回值轰坊,然后對長度判斷
    if s1_num == s2_num:
        return 0
    elif s1_num > s2_num :
        s=s1_num - s2_num
        s1_ch = s1[-s]
        A_a(s1_ch)
        return A_a(s1_ch)
    elif s1_num < s2_num:
        s = s2_num - s1_num
        s2_ch = s2[-s]
        return 0 - A_a(s2_ch)
    else:
        return False

#定義函數(shù),大寫變小寫
def A_a(str):
    if str >= "A" and str <= "Z":
        return ord(str) + 32
    elif str >= "a" and str <= "z":
        return ord(str)
    else:
        print('請輸入字母')
        return False
if __name__ == '__main__':
    s1 = input("請輸入s1字符串\n")
    s2 = input("請輸入s2字符串\n")
    b=strcmp_nc(s1,s2)
    print(b)
  • 執(zhí)行結(jié)果1
請輸入s1字符串
XiAoPeng
請輸入s2字符串
xiaopENg
0
  • 執(zhí)行結(jié)果2
請輸入s1字符串
XiaoPengPeng
請輸入s2字符串
Xiaopeng
112

C語言版本

#include <stdio.h>
#include<string.h>
//定義函數(shù),大寫變小寫
int A_a(char str){
    if (str >= 'A' && str <= 'Z')
        return str + 32;
    if (str >= 'a' && str <= 'z')
        return str;
    else
        return false;
}
//定義比較字符串函數(shù)
int strcmp_nc(char s1[],char s2[]){
  //定義兩個指針
    char *p1 = s1;
    char *p2 = s2;
    int num,s1_num,s2_num;
  //取出兩個字符串長度,以便在不等長的情況下比較祟印。
    s1_num = strlen(s1);
    s2_num = strlen(s2);
  //當兩個字符相等的時候肴沫,指針后移,直到"\0"
    while (*p1 && *p2){
        num = A_a(*p1)-A_a(*p2);
        if (num == 0){
        p1++;
        p2++;            
        }
        else
            return num;
    }
    if (s1_num == s2_num)
        return 0;
    if (s1_num > s2_num){
        return A_a(*p1);
    }
    if (s1_num < s2_num){
        return (0- A_a(*p2));
    }
    else
        return false;
}
int main(void){
    char s1[10];
    char s2[10];
    int num;
    scanf("%s",s1);
    scanf("%s",s2);
    num = strcmp_nc(s1,s2);
    printf("%d",num);
    return 0;
}
  • 執(zhí)行結(jié)果1
XiAoPeng
xiaopENg
0
  • 執(zhí)行結(jié)果2
XiaoPengPeng
Xiaopeng
112
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蕴忆,一起剝皮案震驚了整個濱河市颤芬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌套鹅,老刑警劉巖驻襟,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異芋哭,居然都是意外死亡沉衣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門减牺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來豌习,“玉大人,你說我怎么就攤上這事拔疚》事。” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵稚失,是天一觀的道長栋艳。 經(jīng)常有香客問我,道長句各,這世上最難降的妖魔是什么吸占? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任晴叨,我火速辦了婚禮,結(jié)果婚禮上矾屯,老公的妹妹穿的比我還像新娘兼蕊。我一直安慰自己,他們只是感情好件蚕,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布孙技。 她就那樣靜靜地躺著,像睡著了一般排作。 火紅的嫁衣襯著肌膚如雪牵啦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天妄痪,我揣著相機與錄音蕾久,去河邊找鬼。 笑死拌夏,一個胖子當著我的面吹牛僧著,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播障簿,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼盹愚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了站故?” 一聲冷哼從身側(cè)響起皆怕,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎西篓,沒想到半個月后愈腾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡岂津,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年虱黄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吮成。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡橱乱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粱甫,到底是詐尸還是另有隱情泳叠,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布茶宵,位于F島的核電站危纫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜种蝶,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一契耿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛤吓,春花似錦宵喂、人聲如沸糠赦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拙泽。三九已至淌山,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顾瞻,已是汗流浹背泼疑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荷荤,地道東北人退渗。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像蕴纳,于是被迫代替她去往敵國和親会油。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容