Problema de rezolvat cu pointeri.
Se citesc de la tastatură două şiruri de caractere. Se determină un al treilea şir prin concatenarea primelor două şi se afişează.
E o problema usoara dar nu prea am lucrat cu pointeri si nu stiu sa o fac folosindu-i. As dori cu explicatiile liniilor de cod unde apar pointerii. De preferat in C, dar merge si C++.
Răspunsuri la întrebare
Răspuns:
Explicație:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char* sir1;
char* sir2;
sir1=malloc(100*sizeof(char));
sir2=malloc(100*sizeof(char));
scanf("%s", sir1);
scanf("%s", sir2);
char* sir3;
sir3=malloc(200*sizeof(char));
sir3=sir1;
strncat(sir3, sir2, strlen(sir2));
printf("%s", sir3);
return 0;
}
explicatii pointeri:
char *sir1; - sir1 este un pointer care memoreaza adresa unui obiect de tip char
cu functia malloc ii aloc spatiu vectorului in memorie
cat spatiu aloc ii dau parametru lui malloc, in cazul nostru de 100 de ori dimensiunea unui caracter. cu alte cuvinte, in sir poti citi 100 de caractere.
sirul 3 are dimensiune 200 ca sa poata memora sirurile concatenate
strncat e functie de concatenare - la sirul3 (care anterior memorase sirul1) se concateneaza sir2 si avem nevoie si de al treilea parametru - lungimea sirului concatenat).
pentru orice intrebari/ nelamuriri iti stau la dispozitie :)