/*Scrivere una funzione che date tre stringhe A, B e C concateni in C il contenuto
di A e B e restituisca il numero di caratteri copiati in C:*/
#include<stdio.h>
#include <string.h>
#define A 100
#define B 100
#define C 200
int carica(char vet1[],int n, char vet2[],int m);
int conc(char vet1[],char vet2[],char vet3[]);
int conc2 (char vet1[], char vet2[], char vet3[]);
int main ()
{
char vet1[A], vet2[B], vet3[C];
int n, m;
printf("inserisci il numero di elementi di vet1: ");
scanf("%d",&n);
printf("inserisci il numero di elementi di vet2: ");
scanf("%d",&m);
carica(vet1,n,vet2,m);
conc(vet1,vet2,vet3);
conc2(vet1,vet2,vet3);
printf("%s",conc(vet1,vet2,vet3));
printf("\n\n%s",conc2(vet1,vet2,vet3));
}
int carica(char vet1[],int n, char vet2[],int m)
{
int i,j;
for(i=0;i<n;i++)
{
printf("\nInserisci elemento di vet1 = ",i);
scanf("%s",&vet1[i]);
}
for(j=0;j<m;j++)
{
printf("\nInserisci elemento di vet2 = ",j);
scanf("%s",&vet2[j]);
}
return 0;
}
int conc(char vet1[],char vet2[],char vet3[])
{
int result;
strcpy(vet3, vet1);
strcpy(&vet3[strlen(vet3)], vet2);
result = (int)strlen(vet3);
return result;
}
int conc2 (char vet1[], char vet2[], char vet3[]) {
int result=0;
while(*vet1 != '\0')
{
*vet3 = *vet1;
vet3++; vet1++;
result++;
}
while(*vet2 != '\0')
{
*vet3 = *vet2;
vet3++; vet2++;
result++;
}
*vet3 = '\0';
return result;
}