Las funciones wcstoimax() y wcstoumax() en C/C++ funcionan exactamente igual que las funciones strtoimax() y strtoumax() en C++, pero se usan para convertir el contenido de una string ancha (wstring) como un número entero de la base especificada. Esta función se define en el archivo de encabezado cinttypes .
Sintaxis:
uintmax_t wcstoumax(const wchar* wstr, wchar** end, int base); intmax_t wcstoimax(const wchar* wstr, wchar** end, int base);
Parámetros: La función acepta tres parámetros obligatorios como se describe a continuación:
- wstr: especifica una string ancha que consta de un número entero.
- end: especifica una referencia a un objeto de tipo wchar*. La función establece el valor de end en el siguiente carácter en wstr 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: especifica la base numérica (base) que determina los caracteres válidos y su interpretación en la string
Tipo de devolución: la función devuelve dos valores de la siguiente manera:
- 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:
// C++ program to illustrate the // wstoimax() function #include <bits/stdc++.h> using namespace std; // Driver code int main() { wstring str = L"geeksforgeeks"; intmax_t val = wcstoimax(str.c_str(), nullptr, 36); wcout << str << " in base 36 is " << val << " in base 10\n\n"; wchar_t* end; val = wcstoimax(str.c_str(), &end, 30); // 'w' does not lies in base 30 so string // beyond this cannot be converted wcout << "Given String = " << str << endl; wcout << "Number with base 30 in string " << val << " in base 10" << endl; wcout << "End String points to " << end << endl; return 0; }
Producción:
geeksforgeeks in base 36 is 9223372036854775807 in base 10 Given String = geeksforgeeks Number with base 30 in string 8759741037015451228 in base 10 End String points to
Programa 2:
// C++ program to illustrate the // wcstoumax() function #include <bits/stdc++.h> using namespace std; // Driver code int main() { int base = 10; // L is a wide string literal wstring str = L"12345abcd"; wchar_t* end; uintmax_t num; num = wcstoumax(str.c_str(), &end, base); wcout << "Given String = " << str << endl; wcout << "Value stored in num " << num << endl; if (*end) { wcout << "End string points to " << end << endl << endl; } else { wcout << "Null pointer" << endl << endl; } // in this case no numeric character is there // so the function returns 0 base = 10; wstring str2 = L"abcd"; wcout << "Given String = " << str2 << endl; num = wcstoumax(str2.c_str(), &end, base); wcout << "Number with base 10 in string " << num << endl; if (*end) { wcout << "End String points to " << end; } else { wcout << "Null pointer"; } return 0; }
Producción:
Given String = 12345abcd Value stored in num 12345 End string points to abcd Given String = abcd Number with base 10 in string 0 End String points to abcd
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