Salve a tutti, ho questo esercizio e mi viene chiesto di stabilire quale sia l'output e di eliminare tutti gli usi dell'operatore di indicizzazione [], e la variabile i nella funzione f
#include <stdio.h>
int f (char s[], char t[], int n);
int main(void)
{
char s[] = "123";
char t[] = "12345";
int b=11;
printf ("%d\n", f(s,t,b));
return 0;
}
int f (char s[], char t[], int n)
{
int i;
for (i=0; s[i] == t[i]; i++)
if (s[i]=='\0'|| --n <=0) return 0;
return i;
}
l'output è 3, in quanto la funzione verifica quanti elementi delle due stringhe sono uguali ed incrementa i. Facendolo con l'aritmetica dei puntatori ho fatto cosi però non ho idea di come eliminare la variabile i, come posso fare? grazie
#include <stdio.h>
int f (char s[], char t[], int n);
int main(void)
{
char s[] = "123";
char t[] = "12345";
int b=11;
printf ("%d\n", f(s,t,b));
return 0;
}
int f (char s[], char t[], int n)
{
int i=0;
for (; *s == *t; s++, t++)
{
i++;
if (*s=='\0'|| --n <=0) return 0;
}
return i;
}