Visualizzazione dei risultati da 1 a 5 su 5

Discussione: C - problema stringhe

  1. #1

    C - problema stringhe

    ho questo programma...

    codice:
    #include <stdio.h>
    
    int main()
    {
    char testo[100];
    int r;
    printf("Inserisci la frase\n");
    scanf("%s",testo);
    printf("Stampo la frase\n");
    printf("%s",testo);
    printf("\nTrovo la parola più lunga\n");
    scanf("%i",r);
    ...
    }
    se inserisco la frase, senza spazi (es. "ciaopippo"), continua l'esecuzione tranquillamente; se la frase contiene degli spazi (es. "ciao pippo") invece termina il programma senza dare alcun messaggio..

    il problema è quindi nello spazio, come posso risolvere? a me serve che il programma prenda lo spazio...

  2. #2
    Utente di HTML.it L'avatar di Kreator
    Registrato dal
    May 2002
    Messaggi
    278
    prova ad usare la funzione "gets" dello <stdio.h>

    char string [256];
    printf ("Inserisci il tuo nome e cognome: ");
    gets (string);


  3. #3
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367
    Altro errore (credo):
    codice:
    scanf("%i",&r);
    E' importante la &.
    I've got a bike. You can ride it if you like.

  4. #4
    Originariamente inviato da edriv
    Altro errore (credo):
    codice:
    scanf("%i",&r);
    E' importante la &.
    Quando si leggono le stringhe,con la scanf(),non serve l'operatore &(se lo si mette non cambia nulla),in quando è giù un puntatore al primo elemento dell'array di char(alla stringa quindi)

    E' indispensabile invece quando si leggono delle variabili...



    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    codice:
    void Gets(char stringa[],int n){
    int i=0;
    while(n-1>i++){
    stringa[i-1]=Getch();
    if (stringa[i-1]==127){i-=2;
    		      printf("\b \b");
    		      }
    if (stringa[i-1]=='\n'){i--;
    		      break;
    		}
    }
    printf("i-%d",i);
    stringa[i]='\0';
    }
    se sei in dos sostituisci Getch()
    con getch() o getchar()
    altrimenti (in ambiente *nix)usa questa libreria

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.