Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/05/2014, 21:38
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Error en palabra enmarcada.

Código C++:
Ver original
  1. #include<iostream>
  2. #include<stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. string asterisco ( string palabra );
  7. int main ( int argc, char * argv[] ) {
  8.  
  9.     string p = "casa";
  10.     string p_conasterisco;
  11.     p_conasterisco = asterisco ( p );
  12.    
  13.     cout << p_conasterisco;
  14.     return 0;
  15. }
  16.  
  17. string asterisco ( string palabra ) {
  18.     palabra = '*' + palabra + '*';
  19.     return palabra;
  20. }

Hay muchos errores.
Código C++:
Ver original
  1. //GNU nano 2.2.6         Archivo: temanuevo1.cpp
  2. #include<iostream>
  3. #include<stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. void asterisco();   //Error El prototipo de la funcion no espera nada pero cuando llamas la funcion intentas pasar algo llamado palabra pero no es nada (NO EXISTE), no es variable ni string ni nada
  8.  
  9. int main ( int argc, char * argv[] ) { // Si main no espera parametros puedes precindir de (int argc, char * argv[])
  10.  
  11.     string p = "casa";
  12.     asterisco ( palabra );             //El ERROR es que palabra no es una variable por eso da error. Palabra no esta declarada como una variable.
  13.     cout << "*" << p << "*" << endl;
  14.    
  15.     asterisco ( palabra );             //mismo ERROR aparte de que la funcion no espera nada intentas colar algo llamado palabra que no esta declarado
  16.    
  17.     return 0;
  18. }
  19.  
  20. void asterisco() {//Error La Funcion no espera nada pero cuando la llamas intentas pasar algo llamado palabra( PALABRA NO EXISTE), no es variable ni string ni nada da error
  21.     {  // No necesitas esos parentesis ( sobran )
  22.         int  l, i;
  23.         l = palabra.size() + 2; //No funciona por que palabra no ha sido declarada en esta funcion ni es una variable global o sea no existe palabra en esta funcion tampoco lo que l no recibe el tamaño de palabra.
  24.        
  25.         //Intentas recebir un string pero la funcion asterisco no espera nada o sea que palabra no existe y no llega a ejecutar el bucle.
  26.         for ( i = 01; i <= l; i++ ) {
  27.             cout << "*" << endl;
  28.         }
  29.        
  30.         cout << endl;
  31.     }// No necesitas esos parentesis ( sobran )
  32. }

Intente comentar todos pero son demasiados.


Si el programa no hace lo que quieres dime como tiene que quedar la palabra o sea escribe aquí de esta forma

***casa*** y te preparo la función para que entiendas.

para que funcion reciba el string debes declara dentro de las asterisco( string palabra_a_recebir ), entonces la funcion espera un string

ahora le puedo pasar de 2 formas un string o entre parentesis "" una palabra o bien una variable tipo string, veamos 2 ejemplos.

asterisco( "platano" );

O bien asi:

string pal = "platano";

asterisco( pal );
En este caso no necesitas poner doble asterisco ya que se trata de una variable que ya guarda un string y no un string en si.

otra observacion es igual que si vas a retornar un string el tipo de la funcion debe ser string:

Código C++:
Ver original
  1. string asterisco( string palabra ){  //Esto se le asi: funcion asterisco que retorna un string y espera un string llamado palabra.
  2.    //Aqui hara la funcion su magia...
  3.    return palabra;                            //Aquí retorna el string recuerda guardarlo el resultado en otro string para imprimir.
  4. }

Dado que un string no es mas que una cadena de caracteres, a esa cadena le puedes hacer operaciones como "sumar" letras o incluso otro string

Código C++:
Ver original
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. string asterisco ( string palabra );
  5. int main () {
  6.    
  7.     string pescado = "con pescado";    
  8.     string frase = "platano " + pescado;
  9.  
  10.     string str;
  11.     str = asterisco( frase );
  12.     cout << str;    
  13.     return 0;
  14. }
  15.  
  16. string asterisco ( string palabra ) {
  17.     palabra = '*' + palabra + '*';
  18.     return palabra;
  19. }

Suerte:

Última edición por vangodp; 20/05/2014 a las 22:28