c語言中atoi
⑴ 如何用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函數使用後的問題
不行,你必須手動設他的指針
char *s = "100+200+300";
int a = atoi(s); //100
int b = atoi(s+4); //200
int c = atoi(s+8); //300
⑶ 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(szBuffer)是什麼意思
atoi 將字元串轉化為整形
atof 將字元串轉化為浮點型
atol 將字元串轉化為長整形
規則就是從第一個0--9的字元開始 到第一個非0-9的字元結束
⑸ 如何用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是把字元(串)轉化為int,不接受float啊什麼的,也就是假如說char a[4] = 12.3,那麼return的是 int i=12。
但是(int)就不一樣了,它只能對單一元素進行轉換,比如上面a[4]中的一個元素,轉換出來就是ASCII碼。而對於float、double變數,(int)得到的是該數的整數部分。
如滿意請採納。