Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12

    [ C ] Ribaltamento Parole

    Salve a tutti!! Ho un piccolo problema con il codice scritto sotto.. premetto che è un programma che serve a ribaltare le parole, lasciando le parole nell'ordine normale, ma con le lettere invertite ( la prima con l'ultima ecc.).. quando vado ad eseguire il programma, xcode va in errore, ma non segnala nulla tra le righe del codice. Qualcuno riesce a darmi una mano? Grazie

    codice:
    #include <stdio.h>
    
    
    int main() {
        
        char words[30]; //dichiaro l'array principale
        char convert[30]; //array per copiare
        int i = 0; //contatore array principale
        int j = 0; //contatore array copiato
        
        printf("Inserisci una frase con parole divise da '.':\n");
        scanf("%s", words); //inserisco la frase
            
        while (i < 30) {
            while (words[i] != '.') {
                convert[j] = words[i]; //passo i caratteri dall'array principale in quello del copiato fino al '.'
                ++i;
                ++j;
            }
            
            while (j >= 0) {
                printf("%c", convert[j]); //scrivo al contrario la parola fino al punto
                --j;
            }
            printf("%c", words[i]); //stampo il punto
            
            ++i;//incoremento per passare al carattere dopo il punto
            j=0;
        }
        
        
        return 0;
    }
    Ultima modifica di MItaly; 01-11-2014 a 01:25 Motivo: Aggiunto tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse prima di

    while (j >= 0) {

    manca una

    j--;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12
    Purtroppo non cambia nulla..

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Così funziona:

    codice:
    #include <stdio.h>
    
    
    
    
    int main()
    {
    
    
        char words[30]; //dichiaro l'array principale
        char convert[30]; //array per copiare
        int i = 0; //contatore array principale
        int j = 0; //contatore array copiato
    
    
        printf("Inserisci una frase con parole divise da '.':\n");
        scanf("%s", words); //inserisco la frase
    
    
        while (words[i] != '\0')
        {
            while ((words[i] != '.') && words[i] != '\0')
            {
                convert[j] = words[i]; //passo i caratteri dall'array principale in quello del copiato fino al '.'
                ++i;
                ++j;
            }
            j--;
            while (j >= 0)
            {
                printf("%c", convert[j]); //scrivo al contrario la parola fino al punto
                --j;
            }
            printf("%c", words[i]); //stampo il punto
    
    
            if(words[i] == '\0') break;
    
    
            ++i;//incremento per passare al carattere dopo il punto
            j=0;
        }
    
    
    
    
        return 0;
    }

    Il problema stava nel fatto che l'ultima parola non termina con un punto, ma con il carattere '\0' (terminatore della stringa), e questo nel codice non veniva considerato.


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    12
    Ah grazie mille!! Non ci avevo pensato!!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da dwight95 Visualizza il messaggio
    Purtroppo non cambia nulla..
    se scrivi una frase con i punti finali come hai detto allora cambia tutto

    prova con

    essere.o.non.essere.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.