Programma in C riguardante le stringhe

di il
4 risposte

Programma in C riguardante le stringhe

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLENGHT 40
int main(){
    /*Scrivere un programma che acquisisca una stringa e conti il numero di caratteri spazio inseriti dall'utente.*/
    char stringa[MAXLENGHT];
    int i=0, conta_s;
    printf ("Inserire parola o frase: ");
    scanf("%s", stringa);
    conta_s=0;
    while(stringa[i]<MAXLENGHT){
        if(stringa[i]==' ')
            conta_s+=1;
    }
    printf ("%d", conta_s);
    return 0;
}
Cosa sto sbagliando?
Il codice dovrebbe stampare il numero di spazi della stringa scritta però se inizializzo "conta_s" a 0 rimane 0, se lo inizializzo a 1 rimane 1

4 Risposte

  • Re: Programma in C riguardante le stringhe

    maxilrosso ha scritto:


    io farei una cosa del genere
    
        while(stringa[i]!='\0'){
            if(stringa[i]==' ')
                conta_s+=1;
            ++i;
        }
    
    Non funziona nemmeno cosi'
  • Re: Programma in C riguardante le stringhe

    Sostituirei la funzione scanf( ) con la funzione fgets( ), ed inserirei il comando di incremento della variabile " i "
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAXLENGHT 40
    
    int main(){
        /*Scrivere un programma che acquisisca una stringa e conti il numero di caratteri spazio inseriti dall'utente.*/
        char stringa[MAXLENGHT];
        int i=0, conta_s;
        printf ("Inserire parola o frase: ");
      
        fgets(stringa, sizeof(stringa), stdin);
        conta_s=0;
    
        while(i<MAXLENGHT){
            if(stringa[i]==' ')
                conta_s++;
            ++i;
        }
    
        printf ("\n%d", conta_s);
        return 0;
    }
  • Re: Programma in C riguardante le stringhe

    La Direttiva di conversione "s" con scanf( ) accetta una stringa di caratteri non comprendente gli spazi: quando viene incontrato uno spazio l'input del campo si arresta.
  • Re: Programma in C riguardante le stringhe

    vuott ha scritto:


    La Direttiva di conversione "s" con scanf( ) accetta una stringa di caratteri non comprendente gli spazi: quando viene incontrato uno spazio l'input del campo si arresta.
    Grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte