一 點睛
需要用到下面這一組函式。
long int strtol(const char *nptr, char **endptr, int base); //將引數nptr字串根據引數base來轉換成有符號的整型
long long int strtoll(const char *nptr, char **endptr, int base); //將引數nptr字串根據引數base來轉換成有符號的長整型
unsigned long int strtoul(const char *nptr, char **endptr, int base); //將引數nptr字串根據引數base來轉換成無符號整型
unsigned long long int strtoull(const char *nptr, char **endptr, int base); //將引數nptr字串根據引數base來轉換成無符號長整型
使用說明
第乙個引數 nptr是要轉化的字串。
第二個引數endptr可以為空,如果不為空,則 endptr 儲存函式結束前的那個非合法字元的位址。如果沒有合法字元,則 *endptr = nptr,函式返回0.
第三個引數base說明nptr的進製。base 取值範圍 0,2-36。
這幾個函式會忽略nptr前面的空格( ' ', '\t', '\n' '\f', '\v' '\r' ,由isspace判定為真的字元)。
二 實戰
1 **
#include#include#includeusing namespace std;
int main(){
char *endptr;
char nptr="123abc";
int ret = strtol(nptr, &endptr, 10 );
cout<<"ret:"<2 執行
[root@localhost charpter03]# g++ 0307.cpp -o 0307
[root@localhost charpter03]# ./0307
ret:123
endptr:abc
ret:0
endptr2:
abcret:83
endptr8:
ret:291
endptr16:
3 說明
當第3個引數為0時,則分以下3中情況進行處理:
第1種:如果nptr以0x開頭,則把nptr當成16進製制來處理。
第2種:如果nptr以0開頭,則把nptr當成8進製來處理。
第3種:把nptr當成10進製。
C string和int型別的轉換方法
總結一下c 中string和int的兩種轉換方法。第一種 使用c標準庫中的函式atoi 和itoa include include using namespace std int main 注意在這個方法中vs中會報告出現不安全,在配置屬性 c c 預處理器加入 crt secure no warn...
C String轉int主要有四種方法
string轉int主要有四種方法 1.int.parse 是一種類容轉換 表示將數字內容的字串轉為int型別。如果字串為空,則丟擲argumentnullexception異常 如果字串內容不是數字,則丟擲formatexception異常 如果字串內容所表示數字超出int型別可表示的範圍,則丟擲...
string 轉int 的方法
首先感謝群裡一位兄弟老a,讓我更加熟悉了string 轉int 方法。廢話不多說,直接貼 背景 string liststring new string 方法1 迭代 int c new int liststring.length 09for int i 0 i liststring.length ...