SuperManPC ha scritto:
#include <stdio.h>
int strlen_fatta_in_casa(char str[]);
void main()
{
printf("%d", strlen_fatta_in_casa("stringa"));
}
int strlen_fatta_in_casa(char str[])
{
int i;
for (i = 0; str[i] != '\0'; ++i)
;
return i;
}
Bene!
SuperManPC ha scritto:
Getchar() l' avevo messa per l' input dei caratteri, è sbagliato così, se una stringa è un argomento della funzione non può essere inserita con getchar?
Volendo si può anche fare, ma nel codice che hai postato all'inizio c'è troppa carne al fuoco.
In ogni caso se proprio ci tieni prova ad implementare la seguente funzione
void read_string(char s[], unsigned int dim);
utilizzando getchar() ed EOF.
dim è la dimensione dell'array s.
Lanciandola col seguente main:
int main()
{
char s[10];
printf("inserisci stringa:\n");
read_string(s, 10);
printf("stringa letta:\n");
printf("%s\n\nlunghezza stringa:%d\n", s, strlen(s));
}
dovrebbe stampare qualcosa del genere
inserisci stringa:
a b
0
123456
stringa letta:
a b
0
12
lunghezza stringa:9
Process returned 0 (0x0) execution time : 28.974 s
Press any key to continue.
inserisci stringa:
0
12
^Z
stringa letta:
0
12
lunghezza stringa:5
Process returned 0 (0x0) execution time : 17.713 s
Press any key to continue.
SuperManPC ha scritto:
La dimensione minima di s è quella di t, la dimensione massima di s penso possa essere un numero > 10
Ovviamente sarà >10, ma sapresti dirmi il numero preciso? Ragionaci!