Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    16

    [C] - concatenazione stringhe

    Vorrei aggiungere una lettera alla fine della stringa.
    Ho visto che posso usare strcat().
    L'ho provato in questo modo:

    codice:
    char *par = "ciao";
    const char *escl = "!";
    strcat(par,escl);
    printf("%s", par);
    Ma ottengo solo "Segmentation fault (core dumped)"

    Qual è il motivo?

  2. #2

    Re: [C] - concatenazione stringhe

    Originariamente inviato da TIggy
    Qual è il motivo?
    La stringa si dovrebbe concatenare a par, ma non c'è abbastanza spazio allocato.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    16
    Grazie.
    Come potrei risolvere senza far diventare par un array?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    con una realloc?

  5. #5
    Originariamente inviato da TIggy
    Grazie.
    Come potrei risolvere senza far diventare par un array?
    Praticamente par è già un array.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    16
    puoi aiutarmi scrivendo due linee di codice?
    come la uso la realloc in questo caso?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Prima

    codice:
    #include <malloc.h>
    #include <string.h>
    e nel main

    codice:
    	char *par;
    	const char *escl = "!";
    	
    	par = (char *)malloc(5);
    	strcpy(par, "ciao");
    	printf("Prima: %s\n", par);
    
    	par = (char *)realloc(par, strlen(par)+strlen(escl)+1);
    	strcat(par, escl);
    	printf("Dopo: %s\n", par);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    In ogni caso una stringa inizializzata con
    codice:
     char *str = "str";
    punta sempre ad un'area di memoria costante.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    16
    Grazie!
    Ora mi è tutto più chiaro!

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.