Il 4/6/2017 11:41:20 Giovanni scrisse:
>On 06/04/2017 10:15 AM, guido84 wrote:
>> Il mio problema e' questo:
>> - Quando ho immesso piu' di 80 caratteri, ho provocato segfault.
>> - Ma come faccio a dirgli di uscire se son piu' di 80, quando e'
>> lei stessa (strlen) che deve contarli?!
>Fai il controllo del numero di caratteri prima della sscanf() !!!
>Per esempio:
> if (strlen(argv[1]) <= (elle -1)
> {
> sscanf(argv[1], "%s", a);
> .......
> }
Gia', adesso mi sembra ovvio :-(
Ora va perfettamente! con la tua sintassi e i suggerimenti di
Giuseppe D.B. m'avete fatto capire l'inutilita' di caricare il
vettore a[] (che tra l'altro era lui che mi creava problemi).
Eccolo semplicissimo e grazie a entrambi!!
=================== unsigned int strlen(char *str) =============
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
unsigned int lunghezza;
if (argc==1) // argc == 1 -> NON si puo' contare una lunghezza infinita
{
printf("\nUsage: Conta i caratteri immessi in $1 \n\n");
}
else // argc > 1 -> adesso si puo' contare
{
lunghezza = strlen(argv[1]);
printf("%u\n", lunghezza);
}
return 0;
}
//$: gcc -Wall -O3 str-len.cc -o str-len
=======================================
--
Saluti,
Guido