Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Usar una cadena char como parte del codigo

Estas en el tema de Usar una cadena char como parte del codigo en el foro de C/C++ en Foros del Web. Hola! Necesito saber como se usa una cadena introducida en una variable como parte de codigo. Explicandolo un poco mas. Me han puesto el siguiente ...
  #1 (permalink)  
Antiguo 27/10/2013, 05:24
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Usar una cadena char como parte del codigo

Hola!

Necesito saber como se usa una cadena introducida en una variable como parte de codigo.

Explicandolo un poco mas.

Me han puesto el siguiente ejercicio:
Código:
Reescribir el siguiente ejemplo utilizando unicamente estructuras condicionales no anidadas: ́
       if (A>B){
             if (B<=C) {
                    if (C!=D){
                          cout << “Dentro del bloque 1”;
} else{
                          cout << “Dentro del bloque 2”;
                    cout << “Dentro del bloque 3”;
} } else {
} } else {
}
cout << “Dentro del bloque 4”;
Y yo lo estoy intentando resolver asi:
Código:
#include <iostream>#include <string>

using namespace std;
int main() {
    
    char x;
    int i;
    
    
    
    
    for (i=1;i<=4;i++)
        {
           switch (i){
        case 1:
           x='\t';
           break;
        case 2:
           x='\t\t';
           break;
        case 3:
           x='\t\t\t';
           break;
        case 4:
           x='\t\t\t\t';
           break;
           }
           
           cout<<"cout<<\"Dentro del bloque "<<i<<"\";\n"<<x<<"}else{\n\t";
           }
                 
    system ("pause");
    
    return 0;
    
}
con la intencion de que la variable x me haga tantos saltos de tabulacion como tenga de valor la variable i.

Pero no funciona....

Como puedo hacer que la x actúe como codigo?

Un saludo y gracias!
__________________
Tecnología y tutoriales
  #2 (permalink)  
Antiguo 27/10/2013, 06:37
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Usar una cadena char como parte del codigo

La idea es buena pero te falla el tipo de dato: las variables char soportan un caracter, pero puedes combinarlas en un array para que soporten una lista de caracteres

Código C:
Ver original
  1. char letra = 'a';
  2. char texto[] = "un texto";

Junto con esto ya que estas en c++ tienes el tipo string, que seria como un equivalente de array de caracteres

Código C++:
Ver original
  1. string texto = "otro texto";

Lo que te interesa es el array de caracteres o el string; cada tipo de dato tiene su comportamiento (p.ej. el array de caracteres puedes hacerlo dinamico o estatico pero una vez definido solo podrá albergar un numero de caracteres definido por su tamaño, en cambio en el string no tienes ese problema)

Si quieres hacerlo con array de chars primero declaras un array de chars y luego en cada caso copias los tabuladores que quieres:

Código C++:
Ver original
  1. char x[50];
  2. ...
  3. case 1:
  4. sprintf(x, "\t");
  5. ...
  6. case 2:
  7. sprintf(x, "\t\t");
  8. ...

Observa que el texto se indica con comillas dobles mientras que los caracteres aislados van con comillas simples. En este caso solo puedes guardar un maximo de 50 caracteres, si intentas poner mas se producirá una violacion de acceso (intentaras acceder a una memoria que no fue asignada a la aplicacion). Tambien ten en cuenta que debes incluir la cabecera stdio.h para usar sprintf.

Si quieres usar strings será parecido pero mas facil:

Código C++:
Ver original
  1. string x;
  2. ...
  3. case 1:
  4. x = "\t";
  5. ...
  6. case 2:
  7. x = "\t\t";
  8. ...

Observa otra vez como tambien indico caracter textual con las comillas dobles.

Y luego tienes aun la tercera forma que consiste en crear una funcion que se encargue de pintar tabuladores, de forma que tu te olvidas de strings y de todo:

Código C++:
Ver original
  1. void pinta_tabs(int n) {
  2.     for(int q = 0; q < n; q++) {
  3.         cout << '\t';
  4.     }
  5. }
  6.  
  7. int main() {
  8.     int i;
  9.    
  10.     for(i=1; i<=4; i++) {
  11.         cout << "cout<<\"Dentro del bloque " << i << "\";\n";
  12.         pinta_tabs(i);
  13.         cout << "}else{\n\t";
  14.     }
  15.  
  16.     return 0;
  17. }

Saludos
vosk
  #3 (permalink)  
Antiguo 27/10/2013, 15:17
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Usar una cadena char como parte del codigo

¿Modifiqué un poco el código que posteaste, es así lo que tenes que reescribir?
Código C++:
Ver original
  1. if (A>B){
  2.     if (B<=C) {
  3.         if (C!=D) {
  4.             cout << &#8220;Dentro del bloque 1”;
  5.         } else{
  6.             cout << &#8220;Dentro del bloque 2”;
  7.         }
  8.     } else {
  9.         cout << &#8220;Dentro del bloque 3”;
  10.     }
  11. } else {
  12.     cout << &#8220;Dentro del bloque 4”;
  13. }

Que tal así?


Código C++:
Ver original
  1. if ( (A>B) && (B<=C) && (C!=D) )
  2. //bloque 1
  3.  
  4. if ( (A>B) && (B<=C) && !(C!=D) )
  5. //bloque 2
  6.  
  7. if ( (A>B) && !(B<=C) )
  8. //bloque 3
  9.  
  10. if ( !(A>B) )
  11. //bloque 4

No entiendo bien que quieres hacer, jeje

Etiquetas: cadena, char, funcion, int, parte, string, struct, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:21.