<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 整數與字符串轉換的C實(shí)現

整數與字符串轉換的C實(shí)現

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏
即將就業(yè),也復習復習相關(guān)的知識,看了看嵌入式C的筆試題,整體感覺(jué)考試題目還是蠻有意思的,考點(diǎn)都比較重要,而且比較細,主要還是設計到一些指針和數組已經(jīng)函數指針等基本的概念。

比如:
如何實(shí)現兩個(gè)值中的最大值:((a+b) + abs(a-b))/2
如何實(shí)現不依靠中間量實(shí)現兩個(gè)變量值的交換:
a = a + b;
b = a - b;
a = a - b;
或者
a = a^b;
b = a^b;
a = a^b;
其中后面的這種方式更加的優(yōu)越。

sizeof與strlen的區別
其中sizeof是一個(gè)操作符,在編譯過(guò)程中就能確定結果,但是strlen是一個(gè)函數,只有在運行的時(shí)候才能得到返回值。

指針、數組、函數等各種形式的指針結合起來(lái)也是出題的重點(diǎn)。

在編程中主要是設計到字符串、鏈表的處理問(wèn)題,我就找幾個(gè)簡(jiǎn)單的程序當做練兵吧。實(shí)現整數和字符串之間的轉換問(wèn)題。這個(gè)轉換問(wèn)題實(shí)質(zhì)上是處理好ASCII碼與數字之間的切換關(guān)系,即數字的ASCII碼形式為‘0’= 0 + 48; ‘9’= 9 + 48;0 = 0-48。
這個(gè)關(guān)系是轉換過(guò)程中最主要的問(wèn)題,當然整數到字符串的轉換過(guò)程中需要注意負數的影響,如果負數沒(méi)有正確處理,就可能出現一些莫名其妙的結果。

首先實(shí)現字符串到整數的轉換過(guò)程:這個(gè)過(guò)程相對來(lái)說(shuō)比較容易,因為這個(gè)過(guò)程可直接判斷是正數還是負數,直接判斷下標0對應的內容即可,其他的可以通過(guò)逐步求和累加的形式實(shí)現?;镜霓D換過(guò)程如下:

本文引用地址:http://dyxdggzs.com/article/201612/324505.htm

int myatoi(char *src)
{
char flag = 0;
int sum = 0;
int i = 0;
int len = strlen(src);

/*參數的正確性*/
if(NULL == src)
{
return 0;
}

/*是否存在符號問(wèn)題*/
if(src[i] == -)
{
flag = -;
++ i ;
}

for( ; i < len ; ++ i)
{
/*判斷字符是否合法*/
if(src[i] < 48 && src[i] > 57)
return 0;

/*數據求和,注意數值的轉換問(wèn)題src[i] - 48*/
sum = sum *10 + src[i] - 48;
}

/*根據標志位實(shí)現返回正確的正負數*/
if(flag == -)
return -sum;
else
return sum;
}

整數到字符串的轉換:實(shí)際上就是將一個(gè)整數的各個(gè)位分離出來(lái),然后實(shí)現字符串的排序問(wèn)題,因為數字長(cháng)度的不確定性使得不便于快速的確定字符串的長(cháng)度,只能首先分解,然后排序。同時(shí)也需要注意符號的存在,基本的轉換過(guò)程如下:

char* myitoa(int num, char *str)
{
char flag = 0;
int i = 0, count = 0, j = 0;

/*參數檢測*/
if(NULL == str)
{
return NULL;
}

/*判斷數值的正負,設置對應的符號*/
if(num < 0)
{
str[i ++] = -;

/************************
同時(shí)要對數值取絕對值
保證后面取余整除操作正常
*************************/
num = -num;
}

while(num / 10)
{
/***************************
count用來(lái)保存實(shí)際的數字個(gè)數,
便于后期的順序調換
****************************/
++ count;
/*實(shí)際保存的順序為反序列*/
str[i++] = num % 10 + 48;
num /= 10;
}
/*判斷是*/
if(num %10)
{
str[i++] = num %10 + 48;
++ count;
}
/*字符串結束符*/
str[i] = 0;

/*實(shí)現數據的較好操作*/
i = 0;
if(str[0] == -)
{
i = 1;
}
/*實(shí)際交換的下標區間為i~j*/
j = count + i - 1;

for(; i < j ; ++ i, --j)
{
/*數據的較好操作*/
str[i] = str[i] + str[j];
str[j] = str[i] - str[j];
str[i] = str[i] - str[j];
}

/*返回實(shí)際的字符串*/
return str;
}

上面的代碼就實(shí)現了字符串與整數的轉換問(wèn)題,基本上實(shí)現了各種情況的轉換。



關(guān)鍵詞: 整數字符串轉換C實(shí)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>