Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
salve a tutti ho bisogno di paragonare due stringhe. ovviamente la prima scelta che mi è venuta in mente è quella di utilizzare la comodossima funzione strcmp, solo che usando questa sintassi non funziona
Codice sorgente - presumibilmente C/C++
char carletto;
const car s='f';
while(strcmp(carletto,s)=0)
mi dice che ho fatto una conversione invalida da char a const char in entrambi i parametri passati
No... la funzione strcmp viene usata per comparare due "stringhe"*. Tu non compari due stringhe bensì due caratteri. In C i caratteri vengono definiti così:
Codice sorgente - presumibilmente C/C++
char ch = 'n';
le stringhe invece devono essere racchiuse tra due apici es: "prova stringa". Per poter utilizzare le stringhe in C devi usare un array di char o un puntatore correttamente allocato
* ho racchiuso tra doppi apici la parola stringa, perchè il C è così old che non c'è un tipo di dato che ti permette di definire tipi stringa. Il discorso invece è diverso per i float , int, char .. tutta via però si possono avere degli stessi risultati. Continua a leggere dall'interruzione.
Ultima modifica effettuata da Pitagora il 17/05/2011 alle 16:19
mi sa che non funziona per vari motivi.... le stringhe nel linguaggio c sono trattate come array di caratteri, per usare la strcmp() devi includere la libreria string.h
esempio:
Codice sorgente - presumibilmente C++
#include<stdio.h>
#include<string.h>
int main(){
char c[]={"prova"};
// c è un array di 5 caratteri
printf("%s\n",c);
int i =strcmp(c,"ciao");
printf("%d\n",i);
//stampa 1 xk prova > ciao
return0;
}
strcmp(s1, s2)
return 1 se s1>s2
0 se s1 = s2
-1 se s1<s2
Ultima modifica effettuata da Bonny il 17/05/2011 alle 16:24
ciao ,come ti hanno detto non funziona per diversi motivi !
il primo devi usare array di char e non semplici char
il secondo nella condizione del while non fai un confronto di uguaglianza
ma un assegnazione = invece dovrebbe essere ==