Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » String Problem(e)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.09.2004, 16:19 Uhr
~DeathO77
Gast


Ich habe eine mathematische Funktion in Form eines Strings.
In diesem String möchte ich gerne, falls vorhanden,die Leerstellen entfernen und die zeichen +, - , * , / von den eingebenen Zahlen unterscheiden.
Habe leider nichts dazu gefunden.
Wer kann mir helfen??
Mfg deatho77
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.09.2004, 16:30 Uhr
virtual
Sexiest Bit alive
(Operator)


Das entfernen der Leerzeichen is in C++ ein Einzeiler mittels remove_copy_if:

C++:
#include <iostream>
#include <algorithm>
#include <string>
#include <cctype>

int main() {

    std::string eingabe;
    std::cout << "Bitte String mit Leerzeichen eingeben: ";
    std::getline(std::cin, eingabe);

    std::string ausgabe;
    std::remove_copy_if(eingabe.begin(), eingabe.end(), std::back_inserter(ausgabe), std::isspace);

    std::cout<<"Die Eingabe war:                \""<<eingabe<<"\""<<std::endl
             <<"Nach Entfernen der Leerzeichen: \""<<ausgabe<<"\""<<std::endl;
}



Im header <cctype> Findest du noch eine Reihe weitere Routinen, zB isdigit() prüft, ob es sich bei einem Zeichen um ein Ziffer handelt oder nicht. Wenn Du nur mit ganzen Zahlen arbeitest, kannst Du also einfach isdigit() für jedes Zeichen aufrufen: gibt es true zurüc, ists eine Ziffer, sonst ein Rechen symbol.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.09.2004 um 16:34 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.09.2004, 16:31 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


da gibt es nix fertiges für das musst du selber basteln und den string von hand parsen...

Ich glaub virtual hat irgendwo mal ein beispiel für sowas gepostet... müsstest du mal mit der suchfunktion des forums in der rätselecke wühlen....

an sonsten ist glaube ich in dem Stroustrup auch ein Beispiel dafür drin, falls der sich zufällig ungelesen in deinem besitz befinden sollte...


Bearbeitung:

verdammt Bender war schneller


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 13.09.2004 um 16:32 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.09.2004, 20:36 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von Windalf:


Bearbeitung:

verdammt Bender war schneller



Und hat viel mehr geschrieben :p

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.09.2004, 15:12 Uhr
~deatho77
Gast


Ich komm mit dem filtern der Zahlen aus einem string noch nicht weiter!


C++:
#include <iostream>
#include <string>

using namespace std;

//---------------------------------------------------------------------------



void filterZahl(string &zahl)
{

}

void eraseSpaces(string &func)
{
  while (func.find(" ") != func.rfind(" "))
    func.erase(func.find(" "), 1);

  func.erase(func.find(" "), 1);
}





int main()

{

  string test("16 *  7+ 34/   45");

  eraseSpaces(test);
  
  cout << test << endl;

  return 0;

}



Soweit bin ich zZ, jetzt möchte ich nur noch die zahlen rausfiltern um damit die aufgabe rechnen zu können!
Mfg deatho77

Dieser Post wurde am 14.09.2004 um 15:32 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: