Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di xMosč
    Registrato dal
    Jan 2015
    residenza
    Fermo,Marche
    Messaggi
    6

    [C]"Scrivere un programma che legge un frase e toglie gli spazi bianchi"

    Ciao ragazzi,sono nuovo di questo forum e volevo subito farvi una domanda.
    Premetto subito che sono uno studente alle prime armi(o quasi) con la programmazione,frequento il 3° anno di ITIS informatica.

    La mia richiesta č:
    Devo scrivere un programma che,letta una frase in input, elimini gli spazi (es. ciao ciao → ciaociao),ma quello che ho fatto non va bene...mi stampa solo la parte che va prima del primo spazio(ciao ciao → ciao).

    Ecco il codice↓
    --------------------------------------------------------------------------------------------------
    #include<stdio.h>
    #include<string.h>
    main(){

    char frase[80]; //Frase da prendere in input
    char frase_2[80]; //Frase senza spazi
    int cont; //Contatore per ciclo for

    printf("\nInserire la frase desiderata,gli spazi verranno eliminati(Max 80 caratteri): ");
    scanf("%s",frase);
    for(cont=0;cont<strlen(frase);cont++){
    if(frase[cont]!=' '){
    frase_2[cont]=frase[cont];
    }
    }
    printf("\n%s\n",frase_2);
    }
    --------------------------------------------------------------------------------------------------
    Ho provato di tutto, come mettere un altro contatore per la seconda stringa,ma nulla. Continua a stampare solo la prima parte della frase.
    Vi prego,Help me.
    Ultima modifica di xMosč; 03-01-2015 a 14:58
    "Per essere traditi bisogna fidarsi,io non l'ho mai fatto." ~Cpt. Price

  2. #2
    ciao
    scanf accetta in input solo stringhe senza spazio per cui il problema non sta dentro il ciclo for (sebbene ci sia un errore anche li in quanto non puoi usare "cont" per entrambe le stringhe ma ti serve un "cont1" per la stringa da generare che va incrementato solo
    quando non trovi spazi.
    A prova di questo puoi mettere un printf della stringa che scrivi prima di entrare nel for e vedrai che gią li č tagliata.

    Devi usare fgets al posto di scanf.

    Il programma quindi sarebbe questo:

    codice:
    #include<stdio.h>
    #include<string.h>
    main()
    {
    
        char frase[80]; //Frase da prendere in input
        char frase_2[80]; //Frase senza spazi
        int cont; //Contatore per ciclo for
        int cont1;
        cont1=0;
        printf("\nInserire la frase desiderata,gli spazi verranno eliminati(Max 80 caratteri): ");
        fgets(frase,79,stdin);
        for(cont=0;cont<strlen(frase);cont++)
        {
            if(frase[cont]!=' ')
            {
                frase_2[cont1]=frase[cont];
                cont1++;
            }
        }
        printf("\n%s\n",frase_2);
    }

  3. #3
    Utente di HTML.it L'avatar di xMosč
    Registrato dal
    Jan 2015
    residenza
    Fermo,Marche
    Messaggi
    6
    Grazie mille dell'aiuto,adesso funziona perfettamente! Mi hai salvato,grazie ancora.
    "Per essere traditi bisogna fidarsi,io non l'ho mai fatto." ~Cpt. Price

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.