Funkcja kopiujaca lancuch.

0

Mam napisać funkcję, która kopiuje zawartość łańcucha pierwszego. jeśli drugi jest krótszy pozostałe miejsca maja być wypełnione 0. Nie zrobiłem tego z 0 bo to co mam teraz już mi sie nie kompiluje.

#include <stdio.h>
#include <stdlib.h>
char strncpy(char *s1,char *s2,int n);
int main()
{
char lancuch1[]="Mam skopiowac 6 wyrazow z tego lancucha";
char lancuch2[20];
int liczba;
printf("Podaj liczbe \n");
scanf("%d",&liczba);
printf("wynik to %s ",strncpy(*lancuch1,*lancuch2,liczba));
}


char strncpy(char *s1,char *s2,int n)
{int a,i;
a=strlen(s1);
printf("Dlugosc s1 wynosi %d",a);
for(;*s1;s1++,s2++)
    {*s2=*s1;
    }
return *s2;
}
 
0

Poczytaj jeszcze raz na temat wskaźników.

0

Potrzebuję wskazówki bo się dopiero uczę

0

Kto próbuje się uczyć nie potrzebuje wskazówek więcej niż mu podano. Wskazówkę już dostałeś.

char *strncpy(char *dst,char *src,int n)
  {
   char *ret=dst,end=dst+n;
   while((dst<end)&&((*(dst++)=*(src++))!=0)) {}
   while(dst<end) *(dst++)=0;
   return ret;
  }
0

zwracam lańcuch 2 więc chyba coś poplątałeś. Ale i tak dzięki ;) mocno mi pomogłeś. Jakoś pokombinuje

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