C++中的strtol()函數將字符串的內容解釋為指定基數的整數,並將其值返回為long int。此函數還設置了一個結束指針,該指針指向字符串的最後一個有效數字字符之後的第一個字符,如果沒有這樣的字符,則將指針設置為null。此函數在cstdlib頭文件中定義。
用法:
long int strtol(const char* str, char** end, int base)
參數:該函數包含三個必需參數,如下所述。
- str:字符串由整數組成。
- end:這是對char *類型的對象的引用。 end的值由函數設置為str中最後一個有效數字字符之後的下一個字符。如果不使用此參數,它也可以是空指針。
- base:它表示確定有效字符及其在字符串中的解釋的數字基數(基數)
返回類型:該函數返回兩種類型的值,如下所述:
- 如果發生有效轉換,則該函數將轉換後的整數返回為long int值。
- 如果無法執行有效的轉換,則返回零值。
以下示例程序旨在說明上述函數。
示例1:
// C++ program to illustrate the
// strtol() function
#include <bits/stdc++.h>
using namespace std;
// Driver code
int main()
{
int base = 10;
char str[] = "123abc";
char* end;
long int num;
// Function used to convert string
num = strtol(str, &end, base);
cout << "Given String = " << str << endl;
cout << "Number with base 10 in string " << num << endl;
cout << "End String points to " << end << endl
<< endl;
// in this case the end pointer poijnts to null
strcpy(str, "12345");
// prints the current string
cout << "Given String = " << str << endl;
// function used
num = strtol(str, &end, base);
// prints the converted integer
cout << "Number with base 10 in string " << num << endl;
if (*end) {
cout << end;
}
else {
cout << "Null pointer";
}
return 0;
}
輸出:
Given String = 123abc Number with base 10 in string 123 End String points to abc Given String = 12345 Number with base 10 in string 12345 Null pointer
示例2:
// C++ program to illustrate the
// strtol() function Program to
// convert multiple values at different base
#include <bits/stdc++.h>
using namespace std;
// Drriver code
int main()
{
char str[] = "100 ab 123 1010";
char* end;
long int a, b, c, d;
// base 10
a = strtol(str, &end, 10);
// base 16
b = strtol(end, &end, 16);
// base 8
c = strtol(end, &end, 8);
// base 2
d = strtol(end, &end, 2);
cout << "The decimal equivalents of all numbers are \n";
cout << a << endl
<< b << endl
<< c << endl
<< d;
return 0;
}
輸出:
The decimal equivalents of all numbers are 100 171 83 10
相關用法
- C++ log()用法及代碼示例
- C++ div()用法及代碼示例
- C++ fma()用法及代碼示例
- C++ real()用法及代碼示例
- C++ imag()用法及代碼示例
- C++ map key_comp()用法及代碼示例
- C++ valarray exp()用法及代碼示例
- C++ valarray log()用法及代碼示例
- C++ regex_iterator()用法及代碼示例
- C++ valarray pow()用法及代碼示例
注:本文由純淨天空篩選整理自Aman Goyal 2大神的英文原創作品 strol() function in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。