C++ Zählen von Punkten im String

Gast #2526731
Lesenswert?

Hallo Gemeinde.

Ich habe eine kurze Frage und zwar würde ich gerne die Anzahl der in 
einem std::string enthalten Punkte zählen.

z.B.

std::string  test="ebene1.ebene2.ebene3.ebene4.ebene5"

int fkt(test);

Die Funktion fkt() soll mir nun 4 zurückgeben.

Gibt es hierfür eine einfache Lösung?

Vielen Dank.
#2526812
Lesenswert?

Thomas schrieb:

> Gibt es hierfür eine einfache Lösung?

künstliche Intelligenz?
neuronale Netze?
Expertensysteme?
Rekursive Lösung?

Was bittte ist an: jedes Zeichen ansehen und wenn es ein '.' ist, einen 
Zähler um 1 erhöhen zu kompliziert, dass man nach einer einfacheren 
Lösung suchen muss?


Stell doch bitte das nächste mal deine richtige Frage. Keine Ahnung 
worum es da geht. VIelleicht kannst du keine Funktion schreiben. 
Vielleicht weißt du auch nicht, wie man einen Text an eine Funktion 
übergibt oder wie man ein Rechenergebnis aus einer Funktion heruas 
bekommt. Oder du weißt nicht wie man eine for-Schleife aufbaut oder ....
Auf jeden Fall: stell nächstes mal deine richtige Frage und versuch sie 
nicht hinter Begriffen wie "einfache Lösung" oder "optimale Lösung" zu 
verstecken. Wir merken das sowieso, das da was nicht stimmt.

Noch eine 'einfache' Lösung, wenn "einfach" kurz bedeuten soll
1
int fkt(char *test){return!*test?0:(*test=='.')+fkt(test+1);}
#2526937
Lesenswert?

Εrnst B✶ schrieb:
> Und, hat jemand eine "echte" C++ Lösung? mit
>
> #include <algorithm>
> #include <functional>
>
> und
>
> std::count_if
> std::equal_to


Du hast es ja praktisch schon vorgeben
1
#include <iostream>
2
#include <string>
3
#include <functional>
4
#include <algorithm>
5

6
int fkt( std::string test )
7
{
8
  return count_if( test.begin(), test.end(), std::bind2nd(std::equal_to<char>(), '.'));
9
}
10

11
int main()
12
{
13
  std::cout << fkt( "Hallo.World." ) << std::endl;
14
}

Hab mir gerade eine 'pessimistische' Lösung überlegt:
Rekursiv alle möglichen Sätze innerhalb von 7-Bit ASCII zusammenbauen.
Dabei darauf achten, wieviele Punkte generiert wurden. Hat man auf die 
Art einen Satz gebaut, der dem Ausgangssatz entspricht, weiß man 
wieviele '.' da drinnen sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren