Stringverarbeitung/ Scuhwort lesen if Anweisung



  • Hallo zusammen,
    ich habe ein Programm was noch nicht ganz läuft. Es soll ein Suchwort finden und gucken ob dahinter ein Buchstabe ist.
    Randbedingung ist,
    das zeilenweise eingelesen wird

    das programm funktioniert jedoch ist meine if anweisung nicht korrekt ich weiß nicht wie ich die formulieren soll, damit er nur zählen soll wenn dahinter kein buchstabe ist!

    while(getline(muellermich_datei, line))
    {
    
    for(pos=0; pos<line.size() ;pos=pos+key.size())
    {
    pos=line.find(key,pos);
    if(pos==string::npos)
    {
    break;
    }
    
    if((pos+key.size()+1)==' ')
    {	
    counter ++;
    }
    
    else
    {
    	break;
    }
    }
    }
    

    habe auch schon gedacht das man mit der funktion isalpha das auch lösen könnte.

    Weiß aber nicht wie ich das in die if anweisung einbau.

    Bitte helft mir 😉

    Danke



  • while(getline(muellermich_datei, line))
    {
    	for (pos=0; (pos = line.find(key, pos)) != string::npos; pos += key.size()+1)
    	{
    		if (pos+key.size() >= line.size() || !isalpha(line[pos+key.size()]))
    			counter++;
    	}
    }
    

    3: Suche so lange nach dem Schluesselwort key ab der Position pos bis es nicht mehr gefunden werden kann. Die Bedingung sieht vielleicht kompliziert aus, ist aber ganz einfach:
    Zuer suchen wir mit find und speichern dann das Ergebnis in pos mit dem ZUweisungsoperator. Dies wird dann auch gleich als Ausdruck gewertet sodass wir gleich durch string::npos ueberpruefen koennen ob, ob das Schluesselwort noch gefunden werden konnte.

    5: Wenn es kein Zeichen nach dem gefundenen Schluesselwort gibt, dann erhoehe den counter
    Wenn es aber noch ein Zeichen gibt, dann erhoehe den counter wenn es kein Buchstabe ist


Anmelden zum Antworten