Crear archivo de cabecera .h con funcion que retorna string

Iniciado por Darioo, 25 Enero 2014, 22:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Darioo

Esta función convierte un string que tenga letras minusculas las pasa a mayusculas Es solo un ejercicio que estoy haciendo.

El código funciona bien,mi duda es si puedo usar esta funcion en un arhivo de cabecera .h y como lo hago, lo he intentando y no ha funcionado.

Con funciones que retornan tipoa primitivos no tuve problema. Como string no es primitivo supongo que es imposible que el preprocesador lo reconozca.

En fin quería saber si existe alguna posible solución.


strMayus.cpp
//Convierte strings de minusculas a mayusculas
string strMayus(string str){

string str2;
int i = 0;

while (i < str.length())  {

if (96 < str.at(i) < 123) // si el caracter es una letra minúscula

str2 = str.at(i)-32; // pasa el caracter a mayúscula

if (97 > str.at(i) || str.at(i) > 122) str2 = str.at(i); // si no es letra o letra minúscula, mantiene su valor

str.replace(i,1, str2); // reemplaza caracter
i++;
}
return str;

}


Saludos y gracias por la atención.


No tengo talentos especiales, pero soy profundamente curioso. Einstein

amchacon

No hay ningún problema con el tipo de retorno.

Ahora bien, si pones el #include antes del "using namespace std" pues entonces te saltará el error porque no estas en el espacio de nombres de la biblio estándar.

Una solución es:
Código (cpp) [Seleccionar]
std::string strMayus(std::string str){

std::string str2;
int i = 0;

while (i < str.length())  {

if (96 < str.at(i) < 123) // si el caracter es una letra minúscula

str2 = str.at(i)-32; // pasa el caracter a mayúscula

if (97 > str.at(i) || str.at(i) > 122) str2 = str.at(i); // si no es letra o letra minúscula, mantiene su valor

str.replace(i,1, str2); // reemplaza caracter
i++;
}
return str;

}
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Darioo


Gracias, agregué los std al archivo de cabecera y funcionó. Tan simple como eso  ;D

#ifndef UTILS_H_INCLUDED
#define UTILS_H_INCLUDED

std::string strMinus(std::string str);
std::string strMayus(std::string str);

#endif // UTILS_H_INCLUDED


No tengo talentos especiales, pero soy profundamente curioso. Einstein