View Full Version : [C] Problemoni con le char
xeeynamo
27-01-2008, 18:09
Salve a tutti! Stò realizzando un programmino in C che a seconda del valore in char che gli viene dato deve restituire una stringa. Vi faccio vedere più o meno come deve venire:
char var1[5];
char var2[5];
lettura della variabile var1...
if (var1=="1234")
*var2='abcd';
if (var1=="5678")
*var2='efgh'
printf("%s",var2);
ma non funziona :( . Ho provato a fare di tutto: var2="prova", var1='valore', ma niente!! Programmo da un pò di mesi ma mai mi sono ritrovato un problema del genere davanti che magari è anche facile da risolvere. Grazie in anticipo x l'aiuto
banryu79
27-01-2008, 18:27
char var1[5];
char var1[5];
/* ...omissis... */
if (var1=="1234")
In C non puoi mica farlo così il confronto di uguaglianza tra due array di char...
Troppo comodo! :asd: (Magari si potesse :ronf:)
Devi ciclarti gli array e verificare carattere per carattere la corrispondenza delle due stringhe...
Ma se non devi farlo per esercizio allora utilizza le funzioni della libreria STRING.H
E' meglio sottolineare che le librerie standard del C comprendono un gran numero di funzioni (dichiarate in STRING.H) per la manipolazione delle stringhe, che effettuano le più svariate operazioni: copiare stringhe o parte di esse (strcpy(), strncpy()), concatenare stringhe (strcat(), strncat()), confrontare stringhe (strcmp(), stricmp()), ricercare sottostringhe o caratteri all'interno di stringhe (strstr(), strchr(), strtok())... insomma, quando si deve trafficare con le stringhe vale la pena di consultare il manuale delle librerie e cercare tra le funzioni il cui nome inizia con "str": forse la soluzione al problema è già pronta.
xeeynamo
27-01-2008, 18:42
Devi ciclarti gli array e verificare carattere per carattere la corrispondenza delle due stringhe...
Ma se non devi farlo per esercizio allora utilizza le funzioni della libreria STRING.H
ahia... ma includere la string.h significa passare dal c al c++, quindi dovrei includere anche la iostream. o sbaglio? Comunque quello che stò facendo è un vero e proprio software che stà uscendo abbastanza bene. Il mio obiettivo era prendere dal registro la versione di windows (ad esempio la 5.1 che corrisponde all'XP o la 6.0 che corrisponde a vista) e cambiare parti del funzionamento del programma in base alla versione che il prog aveva trovato. La versione la legge e mi restituisce il valore 5.1 sull'xp e 6.0 su vista ma non sò come eseguire il programma in modo diverso al variare di quella stringa :confused: tutto lì è il problema
banryu79
27-01-2008, 18:46
ahia... ma includere la string.h significa passare dal c al c++, quindi dovrei includere anche la iostream. o sbaglio?
E chi l'ha detto che includere la libreria string.h significa passare al C++ ???
leggi qua string.h (http://it.wikipedia.org/wiki/String.h)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.