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
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
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!
veramente pensavo a qualcosa tipo la concatenazione delle stringhe in JavaScript con l'operare +. Il C non prevede qualcosa di simile?
mi correggo
operare = operatorein JavaScript con l'operare +
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!
qualcosa tipo:
(questa roba ovviamente non funziona, ma è per dare un'idea di cosa intendo)codice:char *var = "ciao"; printf(var + " a tutti");
Non credo sia possibile.Originariamente inviato da matteolandi
qualcosa tipo:
(questa roba ovviamente non funziona, ma è per dare un'idea di cosa intendo)codice:char *var = "ciao"; printf(var + " a tutti");
ma la forma :
printf("%s a tutti", var);
cos'ha che non va?
Slack? Smack!
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; }
![]()
sempre entro i limiti dell'array,
altrimenti si va in errore, giusto?
![]()
Slack? Smack!
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".