javanuben Skrevet 19. januar 2011 Del Skrevet 19. januar 2011 (endret) Hei! Problemet er som følger: Jeg har et 3x3 char array, altså char values[3][3], hvor jeg prøver å sammenligne values[0][0] med values[1][1] (og values[2][2] hvis det er mulig å sammenligne 3 samtidig). Jeg har prøvd følgende: if(values[0][0] == values[1][1]) {...} // Som ikke uventet aldri ble 'true'. if(strcmp(values[0][0], values[1][1]) == 0) {...} // Som klager på "error: invalid conversion from 'char' to 'const char*" if(strcmp((char*)&values[0][0], (char*)&values[1][1]) == 0) {...} // Som fjerner feilmeldingen, men som heller aldri blir 'true' All hjelp tas imot med takk! Endret 19. januar 2011 av javanuben Lenke til kommentar
greygenic Skrevet 19. januar 2011 Del Skrevet 19. januar 2011 (endret) Det er da ikke noe problem å sammenligne char-verdier, og ej heller tre eller flere om gangen. Så lenge du bare "deler" opp problemet litt..: #include <iostream> using namespace std; int main(void) { char MittArray[3][3]; int x, y; for (x = 0; x < 3; x++) for (y = 0; y < 3; y++) MittArray[x][y] = 'A'; if (MittArray[0][0] == MittArray[1][1]) if (MittArray[0][0] == MittArray[2][2]) if (MittArray[1][1] == MittArray[2][2]) cout << "Likhet." << endl << endl; // system("pause"); } Operatøren '==' tar kun to verdier på en gang, for den er av typen 'binary', så da må du bare "trikse litt".. if-setningene i eksempelet kan du selvsagt flytte sammen, og lage en stor setning, hvis du heller vil det. Alt du trenger er && og nok med paranteser. edit: Grunnen til at du ikke fikk brukt 'strcmp' er fordi dette er for strenger. Om du heller vil bruke denne må du gjøre om enten arrayet som holder på informasjonen din, eller datatypen som verdiene dine er av, før de sammenlignes.. Endret 19. januar 2011 av greygenic 1 Lenke til kommentar
javanuben Skrevet 19. januar 2011 Forfatter Del Skrevet 19. januar 2011 (endret) Hmm, pussig... Som du ser i min første post, så prøvde jeg med ==, men jeg fikk det aldri til å bli 'true'. Mulig jeg har gjort noe annet galt. Skal undersøke det. Takk for svar! EDIT: Det funket nå! Var en annen bug som gjorde at det aldri ble 'true'! Takk igjen, greygenic! Endret 19. januar 2011 av javanuben Lenke til kommentar
greygenic Skrevet 19. januar 2011 Del Skrevet 19. januar 2011 Da sender jeg regning i posten jeg. Det blir styggdyrt, hehe. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå