當前位置:首頁 » 編程語言 » c語言中的atoi函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中的atoi函數

發布時間: 2022-09-23 03:11:38

c語言atoi函數求助

abcd轉換數值?你是要做16進制的嗎?

一般atoi只是轉換10進制的不包括16進制

如果你要支持16進制可以自行增加一個前導符比較常用的是x

即如果字元串第一個字元為x則表示改字元串為16進制形式

判斷和你現有的符號判斷類似,處理數據的時候不能用isdigit判斷而是要加入a-f的判斷


計算的時候10*n改成16*n


簡單的例子

intatoi(chars[])
{
inti,n,sign;

for(i=0;isspace(s[i]);i++)/*skipwhitespace*/
;
if(s[i]=='x')/*hex*/
{
i++;
for(n=0;isdigit(s[i])||(s[i]>='a'&&s[i]<='f');i++)
{
if(isdigit(s[i]))
n=16*n+(s[i]-'0');
else
n=16*n+(s[i]-'a')+10;
}
returnn;
}
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]=='-')/*skipsign*/
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0');
returnsign*n;
}

Ⅱ c語言atoi用法介紹

函數名: atoi
功 能: 把字元串轉換成長整型數
用 法: #include <stdlib.h>
int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int n;
char *str = "1234";

n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}

運行結果是:
string =1234 integer=1234

Ⅲ C語言中atoi函數的作用及實例

字元串轉整型。
ASCII to integer
Convert strings to integer
如果可以的話也能將字元串轉換成整形數值,
如:
char *buf= "1234 ";
int i=atoi(buf);
//則i = 1234;

Ⅳ 如何用c語言實現atoi函數

要善用網路。。。網路就有atoi這個詞條,裡面有c語言實現的源代碼(其實是c++,不過唯一的不同只是它的字元串定義為了const,即常量,表示在函數里不允許改變此字元串內容)
我在這里加上注釋簡單說明一下該源碼
int
my_atoi(const
char
*str){
int
result;
//保存返回結果的
int
signal
=
1;
//保存符號的,默認正數
//判斷第一個數字是否合法
if((*str>='0'&&*str<='9')||*str=='-'||*str=='+'){
//如果是-,符號變為-1,指針右移
//如果是+,指針右移(總之指向了第一個數字)
if(*str=='-'||*str=='+'){
if(*str=='-')
signal
=
-1;
str++;
}
}
else
return
0;//第一個不是+,-或數字,非法返回0
//這里就是轉換,是數學的問題就不解釋了
while(*str>='0'&&*str<='9')
result
=
result*10+(*str++
-'0');
return
signal*result;
}
不過這個程序,如果字元串是非法的話,他也會返回直到非法字元之前的數值
比如123abc
返回值就是123

Ⅳ 如何用C語言實現atoi()函數

要善用網路。。。網路就有atoi這個詞條,裡面有c語言實現的源代碼(其實是c++,不過唯一的不同只是它的字元串定義為了const,即常量,表示在函數里不允許改變此字元串內容)

我在這里加上注釋簡單說明一下該源碼
int my_atoi(const char *str){
int result;

//保存返回結果的
int signal = 1;

//保存符號的,默認正數

//判斷第一個數字是否合法
if((*str>='0'&&*str<='9')||*str=='-'||*str=='+'){

//如果是-,符號變為-1,指針右移

//如果是+,指針右移(總之指向了第一個數字)
if(*str=='-'||*str=='+'){

if(*str=='-')
signal = -1;
str++;
}
}
else return 0;//第一個不是+,-或數字,非法返回0
//這里就是轉換,是數學的問題就不解釋了
while(*str>='0'&&*str<='9')
result = result*10+(*str++ -'0');
return signal*result;
}

不過這個程序,如果字元串是非法的話,他也會返回直到非法字元之前的數值
比如123abc
返回值就是123

Ⅵ c語言atoi用法介紹

該函數直接將字元串轉換成整數,函數原型應該是:
int atoi(char *str);

Ⅶ c語言atoi函數

跟一行兩行沒關系, 跟了參數,就會大於1了,第一個參數是程序本身,第二個參數開始才是真正的參數