C++中的strtoimax()函数将字符串的内容解释为指定基数的整数,并将其值作为intmax_t(最大宽度整数)返回。此函数还设置一个结束指针,该指针指向字符串的最后一个有效数字字符之后的第一个字符,如果没有这样的字符,则将指针设置为null。此函数在cinttypes头文件中定义。
句法:
intmax_t strtoimax(const char* str, char** end, int base)
参数:
- str :指定由整数组成的字符串。
- end :对char *类型的对象的引用。最终的值由函数的最后一个有效数字字符后str中的下一个字符集。如果不使用此参数,则它也可以是空指针。
- 基数:代表t
确定有效字符及其在字符串的解释的数字基数(基数)
返回类型<:> strtoimax()函数返回两个值,如下所述:
- 如果发生有效转换,则该函数将转换后的整数返回为整数值。
- 如果无法执行有效的转换,则返回零值(0)
下面的程序说明了上述函数:
程序1:
// C++ program to illustrate the
// strtoimax() function
#include
using namespace std;
// Driver code
int main()
{
int base = 10;
char str[] = "1000xyz";
char* end;
intmax_t num;
num = strtoimax(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 points to null
// here base change to char16
base = 16;
strcpy(str, "ff");
cout << "Given String = " << str << endl;
num = strtoimax(str, &end, base);
cout << "Number with base 16 in string " << num << endl;
if (*end) {
cout << end;
}
else {
cout << "Null pointer";
}
return 0;
}
输出:
Given String = 1000xyz
Number with base 10 in string 1000
End String points to xyz
Given String = ff
Number with base 16 in string 255
Null pointer
程式2:
程序以不同的底数转换多个值
// C++ program to illustrate the
// strtoimax() function
#include
using namespace std;
// Drriver code
int main()
{
char str[] = "10 50 f 100 ";
char* end;
intmax_t a, b, c, d;
// at base 10
a = strtoimax(str, &end, 10);
// at base 8
b = strtoimax(end, &end, 8);
// at base 16
c = strtoimax(end, &end, 16);
// at base 2
d = strtoimax(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
10
40
15
4
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。