c---StrCmp()函數(shù)實現(xiàn)

以下是字符串比較函數(shù)的實現(xiàn):

#include<stdio.h>

int stringCmp(char a[], char b[])

{

unsigned char x,y;

unsigned char i = 0;

do

{

x = (unsigned char)a[i];

y = (unsigned char)b[i];

i ++;

//如果有一個字符串結(jié)束啊掏,則返回

if(y == '\0')

{

return x - y;

}

}while(x == y);

return x - y;

}

int main(int argc,char *argv[])

{

char a[20] = "i am good";

char b[20] = "i am bad";

printf("%d",stringCmp(a,b));

return 0;

}


改進一下:

#include<stdio.h>

#include<string.h>

#include<ctype.h>

#include<limits.h>

//存儲小數(shù)位數(shù)

int decimalMax = 0;

//將字符串轉(zhuǎn)換為浮點數(shù)

double atof(char *a)

{

int sign = 1;

//此處3個變量必須賦值為double型變量

double digit = 0.0;

double decimal = 0.0;

double power = 10.0;

int i = 0;

int j = 0;

//正式開始循環(huán)遍歷字符串前蝶押,先檢查是否存在一些除空格,+ - 之外的非數(shù)字字符,如果存在肮疗,則返回0

for(; a[j] != '\0'; j ++)

{

if((a[j] < '0' || a[j] > '9') && a[j] != ' ' && a[j] != '+' && a[j] != '-' && a[j] != '.')

{

return 0.0;

}

}

//開始循環(huán)遍歷字符串融涣,依次遇到 空格,數(shù)字表锻,小數(shù)點恕齐,數(shù)字,則開始轉(zhuǎn)換

for(; isspace(a[i]) ; i ++)

{

;

}

switch(a[i])

{

case '+':

i ++;

break;

case '-':

sign = -1;

i ++;

break;

default:

break;

}

for(; isdigit(a[i]); i ++)

{

if(digit > INT_MAX)

{

return 0;

}

digit = digit * 10 + a[i] - '0';

}

if(a[i] == '.')

{

i ++;

}

for(; isdigit(a[i]); i ++)

{

//a[i] - '0' 即將字符轉(zhuǎn)為數(shù)字瞬逊,此處為int型

decimal = decimal + (a[i] - '0') / power;

decimalMax ++;

power *= 10;

}

return sign * (digit + decimal);

}

int main(int argc,char *argv[])

{

//經(jīng)試驗显歧,最多可保存小數(shù)位數(shù)為15位,輸出-93.919191196786784000000000确镊,不精確

//double是一個近似值士骤,通常沒有辦法做的很精確.通常能精確到小數(shù)點后面6位,也就是說超過6位可能就不準了蕾域。

//char a[60] = "? ? -93.919191196786781111111111";

char a[60] = {0};

double ax = 0;

//用于計算長度拷肌,將最后的換行符給替換掉

int len = 0;

printf("please input a string in 60:\n");

fgets(a,60,stdin);

len = strlen(a);

a[len - 1] = '\0';

ax = atof(a);

printf("%.*lf",decimalMax,ax);

return 0;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市旨巷,隨后出現(xiàn)的幾起案子巨缘,更是在濱河造成了極大的恐慌,老刑警劉巖采呐,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件若锁,死亡現(xiàn)場離奇詭異,居然都是意外死亡斧吐,警方通過查閱死者的電腦和手機拴清,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門靶病,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人口予,你說我怎么就攤上這事娄周。” “怎么了沪停?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵煤辨,是天一觀的道長。 經(jīng)常有香客問我木张,道長众辨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任舷礼,我火速辦了婚禮鹃彻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妻献。我一直安慰自己蛛株,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布育拨。 她就那樣靜靜地躺著谨履,像睡著了一般。 火紅的嫁衣襯著肌膚如雪熬丧。 梳的紋絲不亂的頭發(fā)上笋粟,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音析蝴,去河邊找鬼害捕。 笑死,一個胖子當著我的面吹牛闷畸,可吹牛的內(nèi)容都是我干的吨艇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腾啥,長吁一口氣:“原來是場噩夢啊……” “哼东涡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起倘待,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤疮跑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凸舵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祖娘,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年啊奄,在試婚紗的時候發(fā)現(xiàn)自己被綠了渐苏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掀潮。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖琼富,靈堂內(nèi)的尸體忽然破棺而出仪吧,到底是詐尸還是另有隱情,我是刑警寧澤鞠眉,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布薯鼠,位于F島的核電站,受9級特大地震影響械蹋,放射性物質(zhì)發(fā)生泄漏出皇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一哗戈、第九天 我趴在偏房一處隱蔽的房頂上張望郊艘。 院中可真熱鬧,春花似錦唯咬、人聲如沸纱注。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至全度,卻和暖如春煮剧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背将鸵。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工勉盅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顶掉。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓草娜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痒筒。 傳聞我的和親對象是個殘疾皇子宰闰,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

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