[C++] Condities met char-variabelen

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • Intrepidity
  • Registratie: December 2003
  • Laatst online: 24-06-2024
Ik ben een beetje met C++ aan het expirimenteren, en ben (totaal nutteloos overigens) een programmaatje aan het schrijven die terugstuurt aan de gebruiker hoe vaak de letter 'a' in een ingegeven zin voorkomt. Er moet herhaaldelijk om een zin gevraagd worden enzovoort tot de letter X ingevoerd wordt. het programma moet dan stoppen.
Nou probeer ik dit dus met een while loop, en ik krijg het maar niet voor elkaar om het programma te laten stoppen bij het invoeren van een X..
C++:
1
while (zin != "X") {

Ik heb alle mogelijke combinaties onderhand geprobeerd met enkele en dubbele aanhalingstekens, enzovoort, maar niets lijkt te werken..

Hele code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;

int main() {
    int aantal, i;
    char zin[50];

    cout << "Voer een zin in: ";
    cin.getline(zin, 50);
    
    while (zin != "X") {
        aantal = 0;
        for(i=0; i<strlen(zin); i++) {
            if(zin[i] == 'a') {
                aantal++;
            }
        }
        cout << "De letter a zat " << aantal << " keer in deze zin." << endl;
        cout << "Voer nog een zin in: ";
        cin.getline(zin, 50);
    }

    return 0;
}

[ Voor 8% gewijzigd door Intrepidity op 14-09-2005 22:34 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je kunt geen arrays vergelijken met de standaard operators. Je 'zin' is een array, van 50 tekens. "X" is ook een array, van 2 tekens (de 'X' en een trailing 0). Oplossing: gebruik functies die arrays of strings vergelijke (strcmp), of een custrom string class waarvoor dergelijke operatoren wel gedefinieerd zijn (std::string).

'Toevallig' werkt je app prima als je je char zin[50]; verandert in een string zin;, en ook nog even <string> include.

Dit is echter basis C++ kennis en al 348237732642374 keer hier voorbij gekomen, dus ik gooi 'm op slot :)

[ Voor 17% gewijzigd door .oisyn op 14-09-2005 22:43 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.