elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crear archivo de cabecera .h con funcion que retorna string
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear archivo de cabecera .h con funcion que retorna string  (Leído 1,364 veces)
Darioo

Desconectado Desconectado

Mensajes: 54



Ver Perfil
Crear archivo de cabecera .h con funcion que retorna string
« en: 25 Enero 2014, 22:59 pm »

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
Código:
//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.




En línea

No tengo talentos especiales, pero soy profundamente curioso. Einstein
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Crear archivo de cabecera .h con funcion que retorna string
« Respuesta #1 en: 25 Enero 2014, 23:25 pm »

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
  1. std::string strMayus(std::string str){
  2.  
  3. std::string str2;
  4. int i = 0;
  5.  
  6. while (i < str.length())  {
  7.  
  8. if (96 < str.at(i) < 123) // si el caracter es una letra minúscula
  9.  
  10. str2 = str.at(i)-32; // pasa el caracter a mayúscula
  11.  
  12. if (97 > str.at(i) || str.at(i) > 122) str2 = str.at(i); // si no es letra o letra minúscula, mantiene su valor
  13.  
  14. str.replace(i,1, str2); // reemplaza caracter
  15. i++;
  16. }
  17. return str;
  18.  
  19. }


En línea

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

Desconectado Desconectado

Mensajes: 54



Ver Perfil
Re: Crear archivo de cabecera .h con funcion que retorna string [SOLUCIONADO]
« Respuesta #2 en: 26 Enero 2014, 00:28 am »


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

Código:
#ifndef UTILS_H_INCLUDED
#define UTILS_H_INCLUDED

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

#endif // UTILS_H_INCLUDED

En línea

No tengo talentos especiales, pero soy profundamente curioso. Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines