Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    11

    [C] Problemi con le stringhe, help me!

    Salve, sto facendo i primi passi col linguaggio C.
    E sto sbattendo il muso sulla gestione delle stringhe!

    Guardate questo programmino:

    #include <stdio.h>
    #include <string.h>

    main(int argc, char *argv[])
    {

    // variabili generiche
    int i = 0;
    char nome[10] = "Mattia";

    printf("Nome = %s\n", nome);

    for (i=0; i!=10; i++)
    {
    printf("Carattere n. %d = %s\n", i, nome[i]);
    }

    return (0);
    } // end main


    Questo è l'output che produce:

    Nome = Mattia
    Carattere n. 0 =
    Carattere n. 1 =
    Carattere n. 2 =
    Carattere n. 3 =
    Carattere n. 4 =
    Carattere n. 5 =
    Carattere n. 6 =
    Carattere n. 7 =
    Carattere n. 8 =
    Carattere n. 9 =


    Questo è quello che mi sarei aspettato:

    Nome = Mattia
    Carattere n. 0 = M
    Carattere n. 1 = a
    Carattere n. 2 = t
    Carattere n. 3 = t
    Carattere n. 4 = i
    Carattere n. 5 = a
    Carattere n. 6 =
    Carattere n. 7 =
    Carattere n. 8 =
    Carattere n. 9 =

    Sapete dirmi dove sbaglio?

    P.S. il programma è stato compilato ed eseguito in ambiente AS400 (ma non credo che questo influisca).

    Grazie per qualsiasi aiuto.

    Mattia Vacca.

  2. #2
    Devi usare lo specificatore %c, dal momento che quello che stai cercando di stampare è un singolo carattere, non una stringa.
    codice:
    printf("Carattere n. %d = %c\n", i, nome[i]);
    Tieni conto che dopo l'ultimo carattere effettivamente inserito nella stringa ti ritroverai il NUL e poi dei caratteri-spazzatura; non stupirti cioè se viene fuori una roba del tipo
    codice:
    Nome = Mattia
    Carattere n. 0 = M
    Carattere n. 1 = a
    Carattere n. 2 = t
    Carattere n. 3 = t
    Carattere n. 4 = i
    Carattere n. 5 = a
    Carattere n. 6 =
    Carattere n. 7 = è
    Carattere n. 8 = ?
    Carattere n. 9 = ^
    P.S. il programma è stato compilato ed eseguito in ambiente AS400 (ma non credo che questo influisca).
    Urca, ti tieni un AS400 in casa per provare i programmini in C?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    11
    Grazie MItaly, ora funziona!
    E... no, l'AS400 non ce l'ho a casa ah ah ah.

    (mi sa che seguiranno altre domande, se siete tutti così gentili e rapidi nelle risposte!)

  4. #4
    Originariamente inviato da mattiav
    Grazie MItaly, ora funziona!
    Non c'è di che.
    E... no, l'AS400 non ce l'ho a casa ah ah ah.
    Non si sa mai...
    Amaro C++, il gusto pieno dell'undefined behavior.

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.