ďťż

Ładny brzuch

Witam!
Mam oto tablice 20 wskaźników do stringów
Gdy kopiuje wyraz z krótszej do dłuższej jest ok.
Jednak gdy probuje przekopiować z dłuższej do krótszej to po przekopiwanym wyrazie zostaja jakies smieci. Czy ktos mógłby sprawdzić gdzie popełniłem bład.
I czy w ogogle mozna kopiowac dłuższe znaki do krótszej.?

#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<iostream.h> char *dodaj(char *wsk); void zamiana (char *wsk1, char *wsk2); main() { char *tab[MAX]; int x,y,i=0;    printf("Wprowadz linie nr:");    scanf("%d",&i);      tab[i]=dodaj(tab[i]);    printf("Podaj wiersz z ktorego chcesz kopiować: ");     scanf("%d",&y);    printf("I do ktorego chcesz kopiowac: ");     scanf("%d",&x);    zamiana(tab[x],tab[y]); return 0; } //--------zamiana------------ void zamiana(char *wsk1, char *wsk2) //wsk1=x , wsk2=y { int maks; if( ( strlen(wsk1) ) > ( strlen(wsk2) ) ) {   maks=strlen(wsk1); } else {   maks=strlen(wsk2); } for(int i=0;i<maks;i++) { (*(wsk1+i))=(*(wsk2+i)); } } //--------dodaje wiersz-------- char *dodaj(char *wsk) {          wsk=new char[80];          printf("Podaj tekst: ");          flushall();    gets(wsk); if(!wsk)  {  printf("brak pamieci");  } return wsk; }



Kopiując stringa mniejszego za większego dodawaj na końcu znak #0 :)

Zawsze możesz wykorzystać strcmp() / strncmp() do porównania plików i np. strcpy() do kopiowania :)

musze napisać niestety wlasna f-cje kopiującą. w sumie nie powinienem tez uzywac strlen ale i tak juz całosc programu jest za duza:)
Mozesz dokladniej sprecyzowac jak mam dodac do #0 bo nie bardzo wiem:/
I dlaczego moj warunek na if nie dziala:/
Użytkownik Crisu edytował ten post 27 listopad 2005, 00:02


Np.void copystr(char*zrodlo, char*cel) { for (int i=0; i<strlen(zrodlo); i++) cel[i] = zrodlo[i]; cel[strlen(zrodlo)] = 0; }

no faktycznie nie pomyslałem, dziala thx;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •