Buchstaben aus ein Text zellen
-
Hallo
ich schon wieder, ich will es erreichen das es alle Buchstaben gezählt werden von eine Variable , aber bis jetzt ohne Erfolgt .
Mein Code siet in moment so aus :#include <iostream> #include <string> #include <string.h> using namespace std; int main() { string text; cout << "Bitte ein text eingeben"<< endl ; getline(cin, text); // * char* text0 = new char[text.size() + 1]; //* strcpy(text0, text.c_str()); // * cout <<"Ergebnis:" << text0<< endl; return 0; }Das was mit * markirt ist verstehe ich gar nicht
kann bitte ein helfen und gut erkleren .Danke sehr vor raus.
-
Schritt 1: Über Pointer informieren. (Google)
new char[text.size() + 1]
Reserviert Speicher für [text.size() + 1] Variablen vom Typ char, und gibt einen Pointer auf das erste Element des reservierten Speichers zurück.
text0 zeigt also dann auf das erste Element dieses Speichers.Ein String ist in C nichts anderes als ein char Array, und auch in C++ kann man diese Art von Strings nutzen. strcpy() kopiert einfach jedes Element (jeden Buchstaben, jeden Char) in den reservierten Speicher.
-
okay was machst du da?
Wenn du einfach nur wissen willst wie lang (also wie viele Zeichen) dein String is warum nimmst du nicht einfach die size() funktion (die du sowieso benutzt) oder die length() funktion der string Klasse. Also entweder is deine Aufgabenstellung falsch oder du hast es nicht gecheckt. Jedenfalls kopierst du einfach den String aus "text" in nen "C-String" was absolut keinen Sinn macht...#include <iostream> #include <string> //#include <string.h> //??? warum das noch? using namespace std; int main() { string text; cout << "Bitte ein text eingeben"<< endl ; getline(cin, text); cout <<"Ergebnis:" << text.size() << endl; return 0; }bzw. wenn du es in einer variablen abspeichern willst
int length = text.size(); cout <<"Ergebnis:" << length << endl;wenn du durch den string "iterieren" willst um die zeichen selber zu zählen:
int length = 0; for(int i = 0; i < text.size(); i++) { length++; }letzteres macht nur sinn wenn du z.b. nur buchstaben oder so zählen willst...
-
Danke sehr für Ihre Hilfe
Leider hab ich immer noch nichts verstanden
.
ich will das aus der Text was ich in die Console eingebe die Buchstaben einzeln gezählt werden .
-
-ProGresS- schrieb:
Danke sehr für Ihre Hilfe
Leider hab ich immer noch nichts verstanden
.
ich will das aus der Text was ich in die Console eingebe die Buchstaben einzeln gezählt werden .Wie schon gesagt wurde, die Anzahl der eingegebenen Zeichen ist doch schon durch die size-Methode bekannt. Die brauchst du nicht noch mal extra zählen. Oder möchtest du sie vielleicht einzeln beim Zählen ausgeben oder wie? Du solltest vielleicht noch mal ganz genau formulieren, was du machen willst.
-
#include <iostream> #include <string> #include <fstream> #include <map> typedef std::map<unsigned char, std::size_t> Map; int main() { Map map; std::string str; std::getline(std::cin, str); for (std::size_t i = 0; i < str.length(); ++i) { str[i] = tolower(str[i]); if (map.find(str[i]) == map.end()) { map[str[i]] = 0; } ++map[str[i]]; } for (Map::iterator it = map.begin(); it != map.end(); ++it) { std::cout << it->first << " = " << it->second << std::endl; } return 0; }
-
Also ich will ganz einfach haben
erst das in Console kommt
" Bitte ein Text eingeben: "
nach dem der Text angegeben würde , soll in Console gezeigt werden wie viel Buchstaben es hat, also
" Der Text hat : 20 Buchstaben "Cout und cin Funktion ken ich schon , das Problem wie soll ich es machen das die Buchstaben gezählt werden ?
-
Du hast hier doch bereits genügend Beispiele bekommen. Schau dir die Einträge nochmal an.
-