Buongiorno, dovrò presto dare un esame di informatica base in cui sarà presente una parte di C.
In una vecchia traccia d'esame, è presente un programma, la richiesta è saper scrivere cosa stampa a schermo.
Sebbene io abbia letto la soluzione, non ho capito il motivo per cui stampa quel che stampa, oltre al fatto che non mi sono chiare alcune righe di codice.
Se qualcuno avesse voglia di commentare i punti più importanti del programma in modo da chiarirmi l'esecuzione del codice, mi farebbe un immenso piacere. Grazie mille
Il codice è il seguente
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* doSomething(char *a, char *b);
int main(void) {
char *a;
char *b;
int n = 7;
a = (char*)malloc(sizeof(char)*n);
strcpy(a,"casale");
b = doSomething(a,b);
printf("%s %c\n",a,*b);
return 0;
}
char* doSomething(char *a, char *b){
int n = 0;
char c;
b=a;
for (b,c='1',n=1; b<&a[strlen(a)]; b++,c++)
{
if ((*b)=='a')
{
n++;
*b = c;
}
else if ((*b)=='a'+4)
{
n++;
*b = c-'1'+'3';
}
printf("%s %c\n",a,*b);
}
b = (char*)malloc(sizeof(char));
*b = ('0'+n);
return b;
}