c語言 字串轉換為int或float
在c語言程式設計中,經常會遇到將字串或者字元陣列內的資料轉換為int型資料或者float型資料,網上找了好多方法,結果都不可行,可能是C++的函式吧。在經過多方詢問後,發現可以用atoi和atof函式來進行轉換,具體如下:(它們都存在於<stdlib.h>中)
atoi:
atoi 是把字串轉換成int型的一個c語言函式,很方便的進行使用。
其函式引數是一個字串,如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字(包括結束符 \0) 字元時停止轉換,返回整型數。否則,返回零。
例程:
#include <stdlib.h> #include <stdio.h> int main(void) { int n; char* str = "23.5"; n = atoi(str); printf("string=%s,n=%d\n",str,n); return0; }
atof:
atof是把字串轉換成float型的一個c語言函式,可以很方便的進行轉換。
其函式引數是一個字串。atof()會掃描引數字元串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('\0')才結束轉換,並將結果返回。引數nptr字串可包含正負號、小數點或E(e)來表示指數部分,如123.456或123e-2。返回值是轉換後的浮點型數。
例程:
#include <stdlib.h> #include <stdio.h> int main(void) { float f; char* str = "23.5"; f = atof(str); printf("string=%s,f=%f\n",str,f); return0; }
參考具體使用用法:
atoi:http://baike.baidu.com/link?url=5NtPSd87w0FmglMzOz5_LfEqiPVzLUK9cBlAoI4audhuKZzY_RK9261M6T5vB_ipvu4B5m1YJZLjr17fbcPM3K
atof:http://baike.baidu.com/link?url=MWN9ksPFdF-mQNZ4zOQF8NifC0DcW6j5tON40_gd13w_J_-c8fdwtR7xRQCwM4Yxxkc9WSeF8C9MYuRxlA2b0a
祝各位成功