Visualizzazione dei risultati da 1 a 6 su 6

Discussione: char in C

  1. #1

    char in C

    Ciao a tutti,
    scusate la mia banale domanda... Devo ottenere e immagazzinare delle stringhe attraverso l'uso dello scanf.
    Per fare ciò ho scritto :


    char s[200];
    char p[200];
    printf("Inserisci una stringa\n");
    scanf("%s",s);
    printf("Adesso inserisci una seconda stringa\n");
    scanf("%s",p);

    Dopo di che eseguo una funzione. Il problema sta nel fatto che se io la prima volta inserisco per esempio "Ciao a tutti" il programma mi salta letteralmente il secondo scanf passando direttamente alla funzione mentre se io per esempio scrivo solo "Ciao" tutto fila liscio.... dove sbaglio ???

    Grazie

  2. #2
    invece di scanf("%s") che legge una stringa fino allo spazio
    puoi utilizzare un
    for(i=0;(s[i]=getchar!='\n')AND(i<200);i++);
    per la prima stringa
    e
    for(i=0;(p[i]=getchar!='\n')AND(i<200);i++);
    per la seconda.
    ciauz.

    Getchar() legge un solo carattere alla volta.
    a meno che tu non sia sotto Linux.

  3. #3
    Originariamente inviato da kentaromiura
    invece di scanf("%s") che legge una stringa fino allo spazio
    puoi utilizzare un
    for(i=0;(s[i]=getchar!='\n')AND(i<200);i++);
    per la prima stringa
    e
    for(i=0;(p[i]=getchar!='\n')AND(i<200);i++);
    per la seconda.
    ciauz.

    Getchar() legge un solo carattere alla volta.
    a meno che tu non sia sotto Linux.
    scusa
    errata corrige:
    for(i=0;(s[i]=getchar!='\n')&&(i<200);i++);
    for(i=0;(p[i]=getchar!='\n')&&(i<200);i++);

  4. #4
    Dici di fare così ??


    printf("Scrivi la prima stringa\n");
    for(i=0;(s[i]=getchar()!='\n')&&(i<200);i++);
    printf("Scrivi la seconda stringa \n");
    for(i=0;(p[i]=getchar()!='\n')&&(i<200);i++);


    A questo punto mi ritrovo ciò che scrivo da console direttamente all'interno dei miei vettori s ed d ?? oppure devo valorizzarli così :

    printf("Scrivi la prima stringa\n");
    for(i=0;(s[i]=getchar()!='\n')&&(i<200);i++)
    s[i]=getchar();
    printf("Scrivi la seconda stringa \n");
    for(i=0;(p[i]=getchar()!='\n')&&(i<200);i++)
    d[i]=getchar();

    grazie

  5. #5
    Te li ritrovi nell'array in quanto legge il char assegandolo alla posizione i-ma .
    s[i]=getChar()!=\n

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  6. #6
    maledetta connessione , doppio post
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.