Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C]Operare uno scambio di parole

    Buon pomeriggio a tutti, ho cominciato da poco a studiare il linguaggio C e trovo una difficoltà per me al momento insormontabile nello scambiare due stringhe formate da una sola parola ciascuna senza caratteri particolari

    Il codice seguente non da alcun errore di compilazione ma al momento dell'esecuzione le due parole vengono stampate soltanto che risultano combinazioni strane che non riesco a spiegare.
    Per essere più chiaro se immetto da tastiera le parole:
    Marco Andrea
    dovrei ottenere:

    Andrea Marco

    ma ciò che spunta è:

    Andrmarcea e Marcea

    Come è possibile una cosa del genere? Non ci dormo sopra

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]){
    
      struct studenti{
             char *nome;
    }studente[2];
    char *temp;
    temp = malloc(50*sizeof(char));
    
    
    scanf("%s",&studente[1].nome); 
    scanf("%s",&studente[2].nome); 
    
    temp = studente[1].nome;
    
    studente[1].nome = studente[2].nome;
    
    studente[2].nome = temp;
    
    printf("\n\n%20s %20s\n\n",&studente[1].nome,&studente[2].nome);
    
        system("PAUSE");	
      return 0;
    }
    Spero che qualcuno più esperto di me possa trovare cosa non va in questo codice elementare.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Non puoi copiare una stringa in un'altra con =, devi usare strcpy (string.h)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Grazie, ho provveduto ad effettuare la sostituzione ed ora è perfetto

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(){
    
      struct studenti{
             char nome[100];
    }studente[2];
    
    char *temp;
    
    temp = malloc(100*sizeof(char));
    
    scanf("%s%s",&studente[1].nome,&studente[2].nome); 
    
    strcpy (temp,studente[1].nome);
    strcpy (studente[1].nome,studente[2].nome);
    strcpy (studente[2].nome,temp);
    
    printf("\n\n %s %s \n\n",studente[1].nome,studente[2].nome);
    
        system("PAUSE");	
      return 0;
    }

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.