función strtoimax() en C++

La función strtoimax() en C++ interpreta el contenido de una string como un número entero de la base especificada y devuelve su valor como intmax_t (entero de ancho máximo). Esta función también establece un puntero final que apunta al primer carácter después del último carácter numérico válido de la string; si no existe tal carácter, el puntero se establece en nulo. Esta función se define en el archivo de encabezado cinttypes .
Sintaxis: 
 

intmax_t strtoimax(const char* str, char** end, int base)

Parámetros: 
 

  • str : especifica que una string consta de un número entero.
  • end : es la referencia a un objeto de tipo char*. La función establece el valor de end en el siguiente carácter de str después del último carácter numérico válido. Este parámetro también puede ser un puntero nulo, en caso de que no se utilice.
  • base: Representa t

La base numérica (base) que determina los caracteres válidos y su interpretación en la string
Return Type<: La función strtoimax() devuelve dos valores que se describen a continuación: 
 

  • Si se produce una conversión válida, la función devuelve el número entero convertido como valor entero.
  • Si no se pudo realizar una conversión válida, se devuelve un valor cero (0)

Los siguientes programas ilustran la función anterior: 
Programa 1: 
 

CPP

// C++ program to illustrate the
// strtoimax() function
#include <bits/stdc++.h>
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;
}
Producción: 

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

 

Programa 2: 
Programa para convertir múltiples valores en diferentes bases 
 

CPP

// C++ program to illustrate the
// strtoimax() function
#include <bits/stdc++.h>
using namespace std;
 
// Driver 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;
}
Producción: 

The decimal equivalents of all numbers are 
10
40
15
4

 

Publicación traducida automáticamente

Artículo escrito por Aman Goyal 2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *