• Domingo 15 de Diciembre de 2024, 02:42

Autor Tema:  Insertar Una Palabra En Una Cadena  (Leído 784 veces)

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Insertar Una Palabra En Una Cadena
« en: Domingo 6 de Enero de 2008, 15:30 »
0
holas de nuevo este ejercico lo tengo casi hecho el unico problema es que quiero que asigne un espacio si despues de la coma no lo tiene pero despues de eso viene el problema porque copia la frase con el 1er caracter borrado x el espacio como puedo arreglarlo?

tengo que tener una frase formada x palabras separadas entre si x blancos, comas o puntos y comas, ingresar una palabra y agregarla a la frase original despues de la primera coma.
suponer que en la frase ingresada existen 1 o mas comas separando palabras.

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<string.h>
  5.  
  6. void main (void)
  7. {
  8.    int lf,lr,pos,si;
  9.   char frase[100];
  10.   char rm[100];
  11.   char aux[100]={0};
  12.    char esp=' ';
  13.  printf ("Introduce palabra ");
  14.  gets(frase);
  15.  printf ("remplazo ");
  16.  gets(rm);
  17.  
  18.   lf=strlen(frase);
  19.   lr=strlen(rm);
  20.   for(int j=0;j<frase[j]!='\0'; j++)
  21.   {
  22.     if(frase[j]==',')// si en la frase despues de la coma no pongo espacio copia mal.......
  23.     {
  24.       int ct=0;
  25.       pos=j+2;
  26.       si=j+1;
  27.       if(frase[j+1]!=' ')//si despues de la coma no hay un espacio lo agrego pero elimina el 1er caracter de mi frase
  28.         frase[j+1]=esp;  // los demas caracateres tendria que correrlos a la derecha
  29.       for(int x=si;frase[x]!='\0';x++)
  30.       {
  31.       aux[ct]=frase[x];    // esto sale bien
  32.       ct++;                // pero si agregue espacio en el if anterior aparece con el 1er caracter borrado x el espacio
  33.       }
  34.       aux[ct]='\0';
  35.       printf("%s \n",aux);
  36.       for(;;)
  37.       {
  38.         if(pos>0)
  39.         {
  40.           for(int i=pos;i<pos+lr;i++)
  41.           {
  42.           frase[i]=rm[i-pos];
  43.           }
  44.             frase[i]='\0';
  45.         }
  46.         break;
  47.       }
  48.     }
  49.   }
  50.   strcat(frase,aux); //concatena mi frase y la nueva palabra añadida con lo que queda de la frase despues de la coma
  51.   printf("%s",frase);
  52.  
  53.   getch();
  54. }
  55.  
  56.