El mbsinit() es una función incorporada en C++ que se utiliza para verificar si ps (pasado como parámetro a esta función) apunta a un objeto mbstate_t que describe un estado de conversión inicial. Esta función devuelve un valor distinto de cero para cualquier objeto mbstate_t que represente un estado inicial, o si ps es un puntero nulo.
El estado señalado por ps se puede establecer en el estado inicial llamando a:
// ps points now to a zero-valued object memset (ps, 0, sizeof(*ps));
Sintaxis:
int mbsinit( const mbstate_t* ps)
Parámetro: la función acepta un parámetro como se describe a continuación:
- ps: Puntero a un objeto mbstate_t
Valor devuelto: la función devuelve dos valores de la siguiente manera:
- 0 si ps no es un puntero nulo y no representa el estado de conversión inicial.
- Distinto de cero si ps es un puntero nulo o representa el estado de conversión inicial.
Los siguientes programas ilustran la función anterior:
Programa 1:
CPP
// C++ program to illustrate // mbsinit() function #include <bits/stdc++.h> using namespace std; // function to check if the object describes // the initial conversion state void checkfor(mbstate_t ps) { // (mbstate_t) Type that holds the information necessary // to maintain the state when converting between // sequences of multibyte characters and // wide characters (either way). int func = mbsinit(&ps); if (func) cout<<"The conversion state is initial" <<" conversion state\n"; else cout<<"The conversion state is not initial" <<" conversion state"; } // Driver code int main() { setlocale(LC_ALL, "en_US.utf8"); // initializing the string char str[] = "\u00df"; // initial state mbstate_t ps = mbstate_t(); // check if ps is liknked to // initial conversion state checkfor(ps); mbrlen(str, 1, &ps); // check if, after getting the // length of multibyte character checkfor(ps); return 0; }
The conversion state is initial conversion state The conversion state is not initial conversion state
Programa 2:
CPP
// C++ program to illustrate // mbsinit() function // with empty string #include <bits/stdc++.h> using namespace std; // function to check if // object describes the initial conversion state void checkfor(mbstate_t ps) { // (mbstate_t) Type that holds the information necessary // to maintain the state when converting between // sequences of multibyte characters and // wide characters (either way). int func = mbsinit(&ps); if (func) cout << "the conversion state is initial" <<" conversion state\n"; else cout << "the conversion state is not initial" <<" conversion state"; } // Driver code int main() { setlocale(LC_ALL, "en_US.utf8"); // initializing the string char str[] = ""; // initial state mbstate_t ps = mbstate_t(); // check if ps is liknked to // initial conversion state cout << "After ps is initialized, "; checkfor(ps); mbrlen(str, 0, &ps); // check if, after getting the // length of multibyte character cout << "After performing some task, "; checkfor(ps); return 0; }
After ps is initialized, the conversion state is initial conversion state After performing some task, the conversion state is initial conversion state
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA