Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [C] concatenazione di stringhe

    Ciao,

    date 1 variabile var e 1 costante stringa "ciao" è possibile concatenarle direttamente senza assegnare ciao ad 1 variabile ad esempio in una printf?

    grazie
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Intendi questo?
    codice:
    /* concatena.c */
     
    #include <stdio.h>
     
    const char* SALUTO = "Ciao";
     
    int main(int argc, char* argv[]) {
      printf("%s, %s. \n", SALUTO, argv[1]);
      return (0);
    }
    Slack? Smack!

  3. #3
    veramente pensavo a qualcosa tipo la concatenazione delle stringhe in JavaScript con l'operare +. Il C non prevede qualcosa di simile?

  4. #4
    mi correggo
    in JavaScript con l'operare +
    operare = operatore

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    premesso che non programmo in C,
    che il tipo "var" in C non esiste (mi pare)
    posta un esempio perchè non capisco
    bene cosa vuoi dire.
    Forse intendi ridefinire l'operatore '+'
    per l'utilizzo tra due stringhe?
    Slack? Smack!

  6. #6
    qualcosa tipo:

    codice:
    char *var = "ciao";
    printf(var + " a tutti");
    (questa roba ovviamente non funziona, ma è per dare un'idea di cosa intendo)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Originariamente inviato da matteolandi
    qualcosa tipo:

    codice:
    char *var = "ciao";
    printf(var + " a tutti");
    (questa roba ovviamente non funziona, ma è per dare un'idea di cosa intendo)
    Non credo sia possibile.
    ma la forma :
    printf("%s a tutti", var);
    cos'ha che non va?
    Slack? Smack!

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    In c non ci sono operatori sulle stringhe come in c++, anche perkè le stringhe in c non esistono come tipo di dato ma sono semplicemnte degli array oppure dei puntatori a caratteri allocati dinamicamente. Puoi usare la funzione:

    char * strcat ( char * dest, const char * src );

    dichiarata in string.h per appendere la stringa src a dest, e ottenere come risiltato il puntatore dest con la concatenazione di dest + src; pero è necessario che per dest sia stato allocato sufficiente spazio per entrambe le stringhe; quindi dest deve essere stato dichiarato o come un array n elementi o allocato con malloc come un puntatore a n char, con n >= della somma delle lunghezze delle due stringhe da concatenare + 1 (per il carattere di fine stringa). Esempio:

    codice:
    #include <string.h>
    
    int main ()
    {
      char str[80];
      strcpy (str,"strings  ");
      strcat (str,"have been ");
      strcat (str,"concatenated.");
      return 0;
    }


  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    sempre entro i limiti dell'array,
    altrimenti si va in errore, giusto?
    Slack? Smack!

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Eh già...in particolare non bisogna inizializzare la stringa risultato dest cosi:

    char *dest = "ciao";

    perkè in questo modo viene allocato un array di dimensioni sufficienti a contenere sa stringa "ciao".

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.