Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » mer aus einer Zeile auslesen

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
03.01.2008, 15:04 Uhr
wolf360



Wie kann ich mit c++ mehr Zahlen aus einer Zeile auslesen?

Also man soll in eine Zeile verschieden Zahlen eingeben und die solln eingelesn werden:

so irgendwie, aber des kappt ja net...


C++:
#include <iostream>
using namespace std;

int main(void){
  int test,test1;
  cout << "Eingabe ";
  cin >> test,test1;
  cout << "Deine Eingabe " << test << "," << test1;

}



ich weiß ich könnte es auch mit cin.get() machn, aber mir geht es darum das die beiden Buchstaben in den einzelnen Variablen gespeichert werden?

gruß wolf360
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.01.2008, 15:08 Uhr
xXx
Devil


cin >> test >> test1;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.01.2008, 18:13 Uhr
wolf360



okey noch ne frage zu strings:

Wie kann ich Zeichen auslesen und auch mehr?


C++:
#include <iostream>
#include <cstring>
using namespace std;

int main (void){
    char test[] = "hallo das ist ein test";
    char buchstabe;
    int i,anzahl;
   for(buchstabe='a', i=0,anzahl=0; i<=26; buchstabe++,i++){
     if(strchr(test,buchstabe) != NULL){
                          cout << buchstabe << "  existiert\n";
                      
                          anzahl++;
                          }
                          
     else{
           cout << buchstabe << "  existiert nicht\n";
          }
    
}

  cout << "Es wurden " << anzahl << " Buchstaben aus dem Alphabet gefunden";
    getchar();
    
     }





Okey das Programm Zeigt an ob die Buchstaben vorhandne sind und Zeigt am Schluss wie viele Buchstaben vom Alphabet gefundn wurdn.... aber z.B. das 'a' gibt es zwei mal.

Wie kann ich einen Buchstaben öfters suchn? Also damti ich auch noch sagn könnte wie oft der Buchstabe in dem String enthalten ist?

gruß wolf360

Dieser Post wurde am 05.01.2008 um 18:14 Uhr von wolf360 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.01.2008, 18:28 Uhr
0xdeadbeef
Gott
(Operator)


Zum Beispiel:

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

std::vector<int> count_characters(std::string const &str) {
  std::vector<int> v(256, 0);

  for(std::string::size_type i = 0; i < str.size(); ++i) {
    ++v[static_cast<unsigned char>(str[i])];
  }

  return v;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 05.01.2008 um 18:29 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.01.2008, 22:24 Uhr
wolf360



könntest du mir noch ne Erklärung dazu geben?

Ich versteh davon nur die hälfte!

gruß wolf360

Dieser Post wurde am 05.01.2008 um 22:25 Uhr von wolf360 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.01.2008, 22:41 Uhr
xXx
Devil


Also:

C++:
std::vector<int> count_characters(std::string const &str)

du übergibst string und bekommst einen array mit index der den Buchstaben zugeordneten Zahl und dem index dann zugewiesene Anzahl zurück.


C++:
std::vector<int> data(count_characters("abc"));
std::cout << data['a'] << std::endl;
... 'a' wird da in 97 umgewandelt (s. www.goascii.de/index.php). Ausgegeben wird deshalb 1 ('a' kommt 1x vor!)

Wie das funktioniert?


C++:
{
  std::vector<int> v(256, 0);

  for(std::string::size_type i = 0; i < str.size(); ++i) {
    ++v[static_cast<unsigned char>(str[i])];
  }

  return v;
}
Es wird ein Vektor angelegt, der für jedes Zeichen ein Integer um die Anzahl der vorkommen zu speichern. Alle Werte werden aber mit 0 initialisiert.
(Wobei int hier falsch ist .. std::numeric_limits<std::string::size_type>::max() - std::numeric_limits<int>::max() ... ^^)

Dann wird das Zeichen an der Stelle i in einen unsigned char umgewandelt und in die zugeordnete Zahl und diese stellt dann den Index für den Array dar und an diesem Index wird der Integer-Wert inkrementiert. ...
 
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: