Info stringhe

di il
4 risposte

Info stringhe

Slve a tutti,
volevo farvi una domanda abbastanza semplice riguardo le stringhe perchè ho bisogno di svolgere un programma in c,
Devo creare un ciclo in cui vengono chiesti all'utente due dati da inserire(uno è una stringa e l'altro è un intero). Il ciclo deve chiudersi quando l'utente inserisce nel campo stringa la parola stop;
ammettiamo che la struttura contenente i due campi si chiami "info" ed il campo stringa si chiami
"nome", allora qual'è la condizione che devo scrivere nel ciclo affinchè esso si fermi solo quando viene immesso nel campo nome la parola stop?
Io avevo provato con info.nome != 'stop' ma non va.
Ho provato anche a creare una variabile ponenddola = 'stop' ma sicuraente ho sbagliato qualcosa.
Preciso che l'array non è stato creato dinamicamente ma è statico e che ho pensato di usare un ciclo
do while dove nelle istruzioni del do ho chiesto all'utente di inserire i valori dei due campi.
Grazie per l'aiuto e fatemi sapere se non sono stato chiaro.

4 Risposte

  • Re: Info stringhe

    Devi usare strcmp ( http://www.cplusplus.com/reference/cstring/strcmp ) per confrontare due stringhe in C (e le stringhe vanno tra doppi apici).
    
    if (!strcmp(info[i].nome, "stop") {
     etc...
    
  • Re: Info stringhe

    Conosco questaa funzione ma in questo caso io non ho due stringhe. Dovrei forse crearne una che contenga 'stop'?In caso affermativo come devo faredi preciso?Grazie ancora!
  • Re: Info stringhe

    Pseudocode:
    
    
    ...
    char comando[80]
    while(1)
    {
        gets(comando);
        if ( !strcmp(comando,"stop\n") break; //"stop\n" perchè la gets include \n alla fine della stringa
        //non è stop aggiungo
        gets(comando)
        comando[strlen(comando)-1] = '\0';//tolgo lo \n
        int val = atoi(comando);
        //ho prelevato la stringa ,la converto e poi la aggiungerò....
        ecc...ecc....ecc...
    }
    
  • Re: Info stringhe

    Risolto con una strcmp()
    Grazie a tutti
Devi accedere o registrarti per scrivere nel forum
4 risposte