Informatică, întrebare adresată de cosmaandra2000, 8 ani în urmă

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 de 1Viserys
1

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 :)

Alte întrebări interesante