Programación General > C/C++
Remover un caracter de una cadena cada vez que se repita el ciclo. Necesito idea
(1/1)
			Angeljim105:
			
			Estoy realizando un codigo donde: imprima una cadena de caracteres dentro de un ciclo:
por ejemplo la salida en pantalla debe imprimir:
//////////////////////////////////////
Nombre
 ombre
  mbre
    bre
      re
       e
///////////////////////////////////////
Estoy haciendo un ciclo anidado for pero no logro eliminar el primer caracter  y asi sucesivamente:
El codigo fuente que estoy usando es este: son varias salidas de pantalla pero es la de arriba donde tengo la duda:
// Jimenez Bustillos Angel  // 01220194
// 20/04/17
//  Laboratorio 11
// JBA_L11.C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void menu (void);
void programa1(void);
int main (void)
{
   menu();
   return 0;
}
void menu(void)
{
   int op;
   
   do{
      system ("cls");
      printf("\nMENU");
     printf("\n1.- Ejemplo cadenas");
     printf("\nESCOGE UNA OPCION.");
      scanf ("%d",&op);
     switch(op)
       {
        case 1: programa1();  break;
       
       
      }
   }while(op != 4);
}
void programa1(void)
{
    int tam,i,j;
    char NomAlum[30];
    
    system ("cls");
    printf("Dame tu nombre\n");
    fflush(stdin);
    gets(NomAlum);
    printf("\n");
    tam=strlen(NomAlum);
    
    printf("%s Es tu nombre y tiene %d caracteres\n",NomAlum,tam);
   
   printf("\n");
   system("pause");
   printf("\n");
   
                                     
   for(i=0;i<tam;i++)
   {
 
   printf("%c\n",NomAlum);
   
    }
    printf("\n");
   system("pause");
   printf("\n");
   
    for(i=0;i<tam;i++)
    {
     printf("%c\n",NomAlum[(tam-1)-i]);                            
     }
 
 printf("\n");
 printf("\n"); 
 system("pause");
 
 for(i=0;i<tam;i++)
    {   
    printf("\n");
    
         
      for(j=0;j<tam;j++)
      {
         
         
         printf("%c",NomAlum[j]);
         
         
        
         
     }
     
}
 
    printf("\n");
   system("pause");
   printf("\n");
   
   
 for(i=0;i<tam;i++)
    {   
    printf("\n");
    
         
         
      for(j=0;j<tam;j++)
      {
      printf("%c",NomAlum[(tam-1)-j]); 
         
         
        
         
     }
     
}
printf("\n");
system("pause");
printf("\n");
   
   
   
      
}
		
			chenech:
			
			Hola, te dejo un ejemplo de hacerlo de una forma y de otra, quitando al final el primer ejemplo y quitando al principio el otro, prueba a ver por que no he tenido tiempo de probarlo, si puedes usar String hay funciones como SubString que te facilitan la labor, con char me sale así mas o menos, un saludo.
--- Código:  ---	
// Ejemplo quitando al final
        const char Nombre[30] = "Nombre";
	char Salida[30];
	for(int i=0;i<strlen(Nombre);i++)
	{
		for(int j=0;j<i+1;j++)
			printf("%c", Nombre[j]);
		printf("%c", '\n');
	}
// Ejemplo quitando al principio
	int k;
	for(int i=0;i<strlen(Nombre);i++)
	{
		k=0;
		for(int j=i;j<strlen(Nombre);j++)
			Salida[k++] = Nombre[j];
                Salida[k] = '\0';
		printf("%s", Salida);
		printf("%c", '\n');
	}
--- Fin del código ---
		
			Angeljim105:
			
			Gracias me faltaba un poco de logica para resolver el problema lo estoy analizando, muchas gracias por tu tiempo y tu atencio amigo gracias.
		
Navegación
Ir a la versión completa