problem ze znakiem b

0

Mam taki problem: jest takie polecenie żeby napisać program w którym podczas kopiowania z wejścia na wyjście zamiast 1 znaku \b (backspace) pojawi się ich kilka. Ja to rozumiem tak że po prostu wymaże się kilka znaków - tylko jak to zrobić? Zadanie jest w książce Ansi C (Kernigham , Ritchie) w elementarzu języka C - wnioskuję stąd, że problem trzeba rozwiązać bardzo prostymi środkami. Bardzo dziękuję za pomoc -Tomek

0
#include <stdio.h>
#include <string.h>

// To o co prosiles ...
char* chgchar(char* src,char inch,char outch,char count){
  unsigned i=0,j=0,c=0;
  while(src[i])c+=(src[i++]==inch);
  char* dst=new char[1+(j=(i+(c*(count-1))))];
  dst[j]=0;
  while(i--)
    if(src[i]==inch){
      char k=count;
      while(k--)dst[--j]=outch;
    }else dst[--j]=src[i];
  return dst;
}

// po malej przerobce: to, o co nie prosiles...
char* chgstring(char* src,char inch,char* outstr){
  unsigned i=0,j=0,c=0,count=strlen(outstr);
  while(src[i])c+=(src[i++]==inch);
  char* dst=new char[1+(j=(i+(c*(count-1))))];
  dst[j]=0;
  while(i--)
    if(src[i]==inch){
      unsigned k=count;
      while(k)dst[--j]=outstr[--k]; // while(k--)dst[--j]=outstr[k];
    }else dst[--j]=src[i];
  return dst;
}

void main(){
  char* srce="ala ma kota";
  char* dest;
  printf("\noryginal : %s\nkopia    : %s\n\n",srce,dest=chgchar(srce,'a','A',2));
  delete dest;
  printf("oryginal : %s\nkopia    : %s\n\n",srce,dest=chgstring(srce,'l',"LEXANDRA"));
  delete dest;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1