Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Textstatistiken

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 < [ 2 ] [ 3 ]
000
10.01.2009, 01:11 Uhr
Suba Esel



Da mir gerade langweilig ist:


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

int a[54] = {0}; // Array fuer die Werte: 0-26 Grossbuchstaben, 27-52 Kleinbuchstaben, 53 Leerzeichen, 54 anderes (Komma etc.)

void g(std::string s) // "getStats"
{
// hier zaehlt
}

int main()
{
    std::cout << "Bitte Text eingeben!" << std::endl;
    std::string text = "";
    std::getline(std::cin, text);
    g(text);

    for (int i = 0; i < 26; ++i)
    {
        if (a[i])
            std::cout << char(i + 65) << ": " << a[i] << std::endl;
    }
    for (int i = 26; i < 52; ++i)
    {
        if (a[i])
            std::cout << char(i + 71) << ": " << a[i] << std::endl;
    }
    if(a[53])
    std::cout << "Leerzeichen: " << a[53] << std::endl;
    if (a[54])
        std::cout << "Andere: " << a[54] << std::endl;
}



Es geht darum, ein Programm zu schreiben, dass die Anzahl der Buchstaben/Leerzeichen in einem String zaehlt und nach "a" packt - was wohin steht bei der Deklaration. Ich bin gerade bei 106, da geht aber bestimmt noch mehr (weniger)!

(Ich weiss, dass globale Variablen usw. kein schoener Programmierstil sind, aber falls jemand was rekursives oder so machen will, spart es Zeichen.)

EDIT:
Achja - C++, keine weiteren Header, keine eingebauten Funktionen (falls es sowas wie string.stat gibt )

EDIT 2:
91 89


Gruesse aus Texas!
--
Simon

Dieser Post wurde am 10.01.2009 um 01:25 Uhr von Suba Esel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.01.2009, 01:49 Uhr
0xdeadbeef
Gott
(Operator)


Du meinst hoffentlich

C++:
int a[55] = {0};


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.01.2009, 02:25 Uhr
Suba Esel



Wieso?
26 Grossbuchstaben, 26 Kleinbuchstaben, Leerzeichen, Anderes - sind 54 Eintraege insgesamt?
--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.01.2009, 02:38 Uhr
0xdeadbeef
Gott
(Operator)


Dann musste deine Einträge aber verschieben. An Index 54 eines Arrays mit 54 Elementen zu schreiben, das ist keine gute Idee.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 10.01.2009 um 02:38 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.01.2009, 05:02 Uhr
Suba Esel



Jep, ist mir auch gerade aufgefallen... sry, bin ein bisschen kaputt und bin mal wieder der alten Regel "erst denken, dann posten" nicht gefolgt. Ich aendere das oben.

Bzw., da ich das nicht mehr kann, hier noch mal der richtige Code:


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

int a[54] = {0}; // array fuer die Werte: 0-26 Grossbuchstaben, 27-52 Kleinbuchstaben, 53 Leerzeichen, 54 anderes (Komma etc.)

void g(std::string s) // "getStats"
{
    //hier
}

int main()
{
    std::cout << "Bitte Text eingeben!" << std::endl;
    std::string text = "";
    std::getline(std::cin, text);
    g(text);

    for (int i = 0; i < 26; ++i)
    {
        if (a[i])
            std::cout << char(i + 65) << ": " << a[i] << std::endl;
    }
    for (int i = 26; i < 52; ++i)
    {
        if (a[i])
            std::cout << char(i + 71) << ": " << a[i] << std::endl;
    }
    if(a[52])
    std::cout << "Leerzeichen: " << a[52] << std::endl;
    if (a[53])
        std::cout << "Andere: " << a[53] << std::endl;
}



Sorry nochmal - die Woche war ein bisschen anstrengend.
--
Simon

Dieser Post wurde am 10.01.2009 um 05:05 Uhr von Suba Esel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.01.2009, 11:33 Uhr
kronos
Quotenfisch
(Operator)


Erster Versuch: 94
edit: 82
edit: 78
edit: 73
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 10.01.2009 um 12:37 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.01.2009, 23:32 Uhr
Suba Esel



Meine kuerzeste Version ist gerade 74 Zeichen, stuerzt aber ab, wenn s nicht nullterminiert ist (was std::string IMHO nicht ist, oder?). Die "sichere" Version ist gerade bei 84...
--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.01.2009, 00:12 Uhr
Suba Esel



Hm, spielt wohl keiner sonst mit... wie sieht dein Programm denn aus?
--
Simon

Dieser Post wurde am 15.01.2009 um 00:12 Uhr von Suba Esel editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.01.2009, 12:25 Uhr
~kronosistnichtangemeldet
Gast


Ich poste es, sobald ich daheim mal Internet habe...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.01.2009, 16:54 Uhr
kronos
Quotenfisch
(Operator)


Wenn man vom Teufel spricht...:

C++:
for(int c,i=s.size();i--;++a[isalpha(c)?c-65-(c&32)/5:c-32?53:52])c=s[i];

--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ Rätselecke ]  


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: