strtod () es una función incorporada en C y C++ STL que interpreta el contenido de la string como un número de punto flotante y devuelve su valor como un doble.
Establece un puntero para apuntar al primer carácter después del último carácter válido de la string, solo si hay alguno; de lo contrario, establece el puntero en nulo.
Sintaxis :
double strtod(str, &end)
Parámetros :
str : Especifica la string que tiene la representación de un número de coma flotante.
end : Se especifica el parámetro que hace referencia a un objeto ya asignado de tipo char*.
Valor devuelto : Devuelve un valor doble, que se convierte a partir de una string, y 0, si no se puede realizar una conversión válida.
Los siguientes programas ilustran la función anterior:
Programa 1 :
// C++ program to illustrate the // strtod() function #include <cstdlib> #include <iostream> using namespace std; int main() { char str[] = "11.03e 0mn"; char* end; double number; number = strtod(str, &end); cout << "number = " << str << endl; cout << "double = " << number << endl; cout << "end string = " << end << endl; return 0; }
number = 11.03e 0mn double = 11.03 end string = e 0mn
Programa 2 :
// C++ program to illustrate the // strtod() function without trailing characters #include <cstdlib> #include <iostream> using namespace std; int main() { char str[] = "4.06"; char* end; double number; number = strtod(str, &end); cout << "number= " << str << endl; cout << "double= " << number << endl; // If end is not Null if (*end) { cout << end; } // If end is Null else { cout << "null"; } return 0; }
number= 4.06 double= 4.06 null
Programa 3 :
función strtod() con exponentes y hexadecimales
// C++ program to illustrate the // strtod() function with exponents and hexadecimals #include <cstdlib> #include <cstring> #include <iostream> using namespace std; int main() { // initialize a exponential value char str[] = "-89.04e-3win gfg"; char* end; double number; number = strtod(str, &end); cout << "str = " << str << endl; cout << "double = " << number << endl; cout << "end string = " << end << endl << endl; // initialize a new hexadecimal value strcpy(str, "1998gupta.1204ishwar"); number = strtod(str, &end); cout << "str = " << str << endl; cout << "double = " << number << endl; cout << "end string = " << end << endl; return 0; }
str = -89.04e-3win gfg double = -0.08904 end string = win gfg str = 1998gupta.1204ishwar double = 1998 end string = gupta.1204ishwar
Programa 4 :
// C++ program to illustrate the // strtod() function for Infinity and NaN #include <cstdlib> #include <iostream> using namespace std; int main() { char* end; cout << "Infinity" << " to double = " << strtod("infinity", &end) << endl; cout << "end string = " << end << endl << endl; cout << "Infpqrs" << " to double = " << strtod("Infpqrs", &end) << endl; cout << "end string = " << end << endl << endl; cout << "NaN11x" << " to double = " << strtod("NaN11x", &end) << endl; cout << "end string = " << end << endl << endl; return 0; }
Infinity to double = inf end string = Infpqrs to double = inf end string = pqrs NaN11x to double = nan end string = 11x
Programa 5 :
función strtod() con espacios en blanco iniciales
// C++ program to illustrate the // strtod() function with leading whitespace #include <cstdlib> #include <iostream> using namespace std; int main() { char* end; cout << "99.99" << " to double = " << strtod(" 19.99", &end) << endl; // end pointer is set to null cout << "end string = " << end << endl << endl; // Returns 0 because of invalid conversion cout << "xyz1.80" << " to double = " << strtod("xyz1.80", &end) << endl; cout << "end string = " << end << endl << endl; return 0; }
99.99 to double = 19.99 end string = xyz1.80 to double = 0 end string = xyz1.80
Publicación traducida automáticamente
Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA