linux strtol
#include <stdio.h>
#include <stdlib.h>
#if 0
用于將字符串轉換成整數.
long int strtol(const char *str, char **endptr, int base);
該函數將str所指向的字符串根據給定的base轉換為?個long int型的長整數,base必須介于2和36之間,或者是特殊值0。
參數
str:要轉換為長整數的字符串
endptr:對類型為char* 的對象的引用,其值由函數設置為str中數值后的下幾個字符。
base:基數,必須介于2和36之間,或者是特殊值0。base代表的采取的進制格式。如base值為2就代表采取的二進制。
當base值為0時則是采?10進制做轉換。當遇到"0x"前置字符則會采用16進制做轉換.
功能
開始時,strtol會掃描nptr所指向的字符串,這時它會跳過非法字符,
如:空格。直到遇見數字或者"+、—"號才開始轉換,再遇到數字或者"\0"時結束轉換。
并將結果返回(返回長整型的整數)。
返回值
返回轉換之后的長整型數,否則對異常返回并且設置errno。
說明
1. strtol會從nptr所指向字符串的頭部開始查找,當遇到數字或"+、-"時就開始轉換,遇到其他的字符則停止轉換并返回。
?? 如果字符串中穿插著兩串數字,則只會對第一串數字進制轉換。
2. 如果endptr不是NULL,strtol()會將第二個有效的字符的地址放到*enptr。
3. 如果字符串中沒有數字,strtol()會將nptr的初始值,存儲到endptr中,并且返回0。
#endif
int main () {
?? char str[30] = "2030300 This is test";
?? char *ptr;
?? long ret;
?? ret = strtol(str, &ptr, 10);
?? printf("The number(unsigned long integer) is %ld\n", ret);?? ?/* The number(unsigned long integer) is 2030300 */
?? printf("String part is |%s|\n", ptr);?? ??? ??? ??? ??? ??? ?/* String part is | This is test| */
?? return(0);
}
總結
以上是生活随笔為你收集整理的linux strtol的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用logcxx库和boost库构建系统
- 下一篇: linux 其他常用命令