Napisati funkciju ciji je prototip
char *Spoji(char *niz1, char *niz2)
koja ce stvoriti novi niz koji bi nastao naizmjeninim uzimanjem znakova iz niza1 i niza2 (dakle, prvi znak iz niza1, pa prvi znak iz niza2, pa drugi znak iz niza1, pa drugi znak iz niza2 itd. Nakon to se jedan od nizova iscrpi nadopisati preostale znakove iz onog drugog niza). Npr. ukoliko su ulazni nizovi bili "ABCDEFGH" i "123" stvoreni niz ce biti "A1B2C3DEFGH". Funkcija mora vratiti pokazivac na novostvoreni niz znakova. Mozete pretpostaviti da niz1 i niz2 nisu NULL pokazivaci, ali mogu biti prazni te u tom sluaju treba vratiti pokaziva na niz znakova duljine 0.
Doputene biblioteke funkcija: stdio.h, string.h, stdlib.h
Obavezno koristiti funkciju malloc (ili realloc)!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *Spoji(char *niz1, char *niz2){
char *p;
int i=0,k=0,l=0;
p=(char*)malloc(sizeof(char));
while((niz1!=NULL)||(niz2!=NULL))
{
if(niz1!=NULL){
p[i]=niz1[k];
i++;
p=(char*)realloc(p,i*sizeof(char));
k++;}
if (niz2!=NULL){
p[i]=niz2[l];
p=(char*)realloc(p,i*sizeof(char));
p[i++];
l++;}
} p[i]='\0';
return &p[0];
}
int main()
{
char pa1[]="ABCDEFGH", pa2[]="123";
char *h,*j,*novi=(char*)malloc(9*sizeof(char));
int n,i=0;
novi=Spoji(&pa1[0],&pa2[0]);
n=strlen(novi);
/*
for(i=0;i<9;i++)
novi[i]=pa1[i];
for(i=0;i<9;i++)
printf("%c",novi[i]);
novi=(char*)realloc(novi,12*sizeof(char));
if(novi==NULL)
exit (-1);
novi[8]='4'; novi[9]='5'; novi[10]='6';novi[11]='7';novi[12]='\0';*/
n=strlen(&novi[0]);
printf("%d\n",n);
for(i=0;i<n;i++)
printf("%c",novi[i]);
system("PAUSE");
return 0;
}