#include <stdio.h>
#pragma warning(disable : 4996)
const int MAXSTR = 10; // Stringlaenge
// 2. Funktionsprototyping
void begruessung(void);
void ausgabe(int);
int verarbeitung(char []);
void eingabe(char[], int);
int main(void)
{
char str[MAXSTR];
const char str2[] = "Teststring"; // in C: 0-terminierter String
int i = 0; // Laufvariable
int anzZahlen = 0;
int anzGrossBuchstaben = 0;
begruessung(); // 1. Funktionsaufruf
eingabe(str, MAXSTR);
anzZahlen = verarbeitung(str); // 1. Funktionsaufruf mit Rückgabewert
ausgabe(anzZahlen); // 1. Funktionsaufruf mit Parameter
ausgabe(10); // bei cbv auch eine Konstante als Übergabeparameter
fflush(stdin
); // Tastaturpuffer löschen getchar(); // Warte auf Enter-Taste }
// 3. Funktionsdefinition
void begruessung(void)
{
printf("\t\tWORD COUNT PROGRAMM Version 0.0\n"); printf("\tZaehlt die Anzanl der Zahlen\n\n"); }
void ausgabe(int aus) // Prameterübergabe: call by value (cbv)
{
printf("Anzahl Zahlen= %d\n", aus
); }
int verarbeitung(char str[])
{
int i = 0;
int anzZahlen = 0;
// siehe ASCII-Tabelle: https://d...content-available-to-author-only...a.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle
while (str[i] != 0) // Integer 0 entspricht char '\0'
{
//if (str[i] >= '0' && str[i] <= '9') // Zeichen aus ASCII-Tabelle
//if (str[i] >= 48 && str[i] <= 57) // Dezimale-Werte aus ASCII-Tabelle
//if (str[i] >= 060 && str[i] <= 071) // Oktal-Werte mit führender 0
if (str[i] >= 0x30 && str[i] <= 0x39) // Hex-Werte
anzZahlen++;
i++; // Laufvariable erhöhen
}
return anzZahlen;
}
void eingabe(char feld[], int max)
{
printf("Geben Sie einen String ein: "); //scanf("%s", feld);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNwcmFnbWEgd2FybmluZyhkaXNhYmxlIDogNDk5NikKY29uc3QgaW50IE1BWFNUUiA9IDEwOwkJCQkJLy8gU3RyaW5nbGFlbmdlCgovLyAyLiBGdW5rdGlvbnNwcm90b3R5cGluZwp2b2lkIGJlZ3J1ZXNzdW5nKHZvaWQpOwp2b2lkIGF1c2dhYmUoaW50KTsKaW50IHZlcmFyYmVpdHVuZyhjaGFyIFtdKTsKdm9pZCBlaW5nYWJlKGNoYXJbXSwgaW50KTsKCmludCBtYWluKHZvaWQpCnsKCWNoYXIgc3RyW01BWFNUUl07Cgljb25zdCBjaGFyIHN0cjJbXSA9ICJUZXN0c3RyaW5nIjsJLy8gaW4gQzogMC10ZXJtaW5pZXJ0ZXIgU3RyaW5nCglpbnQgaSA9IDA7CQkJCQkJCS8vIExhdWZ2YXJpYWJsZQoJaW50IGFuelphaGxlbiA9IDA7CglpbnQgYW56R3Jvc3NCdWNoc3RhYmVuID0gMDsKCgliZWdydWVzc3VuZygpOwkJCQkJCS8vIDEuIEZ1bmt0aW9uc2F1ZnJ1ZgoJZWluZ2FiZShzdHIsIE1BWFNUUik7CglhbnpaYWhsZW4gPSB2ZXJhcmJlaXR1bmcoc3RyKTsJCS8vIDEuIEZ1bmt0aW9uc2F1ZnJ1ZiBtaXQgUsO8Y2tnYWJld2VydAoJYXVzZ2FiZShhbnpaYWhsZW4pOwkJCQkJLy8gMS4gRnVua3Rpb25zYXVmcnVmIG1pdCBQYXJhbWV0ZXIKCWF1c2dhYmUoMTApOwkJCQkJCS8vIGJlaSBjYnYgYXVjaCBlaW5lIEtvbnN0YW50ZSBhbHMgw5xiZXJnYWJlcGFyYW1ldGVyCgoJZmZsdXNoKHN0ZGluKTsJCQkJCQkvLyBUYXN0YXR1cnB1ZmZlciBsw7ZzY2hlbgoJZ2V0Y2hhcigpOwkJCQkJCQkvLyBXYXJ0ZSBhdWYgRW50ZXItVGFzdGUKfQoKLy8gMy4gRnVua3Rpb25zZGVmaW5pdGlvbgp2b2lkIGJlZ3J1ZXNzdW5nKHZvaWQpCnsKCXByaW50ZigiXHRcdFdPUkQgQ09VTlQgUFJPR1JBTU0gVmVyc2lvbiAwLjBcbiIpOwoJcHJpbnRmKCJcdFphZWhsdCBkaWUgQW56YW5sIGRlciBaYWhsZW5cblxuIik7Cn0KCnZvaWQgYXVzZ2FiZShpbnQgYXVzKQkvLyBQcmFtZXRlcsO8YmVyZ2FiZTogY2FsbCBieSB2YWx1ZSAoY2J2KQp7CglwcmludGYoIkFuemFobCBaYWhsZW49ICVkXG4iLCBhdXMpOwp9CgppbnQgdmVyYXJiZWl0dW5nKGNoYXIgc3RyW10pCnsKCWludCBpID0gMDsKCWludCBhbnpaYWhsZW4gPSAwOwoKCS8vIHNpZWhlIEFTQ0lJLVRhYmVsbGU6IGh0dHBzOi8vZC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uYS5vcmcvd2lraS9BbWVyaWNhbl9TdGFuZGFyZF9Db2RlX2Zvcl9JbmZvcm1hdGlvbl9JbnRlcmNoYW5nZSNBU0NJSS1UYWJlbGxlCgl3aGlsZSAoc3RyW2ldICE9IDApCQkvLyBJbnRlZ2VyIDAgZW50c3ByaWNodCBjaGFyICdcMCcKCXsKCQkvL2lmIChzdHJbaV0gPj0gJzAnICYmIHN0cltpXSA8PSAnOScpCS8vIFplaWNoZW4gYXVzIEFTQ0lJLVRhYmVsbGUKCQkvL2lmIChzdHJbaV0gPj0gNDggJiYgc3RyW2ldIDw9IDU3KQkJLy8gRGV6aW1hbGUtV2VydGUgYXVzIEFTQ0lJLVRhYmVsbGUKCQkvL2lmIChzdHJbaV0gPj0gMDYwICYmIHN0cltpXSA8PSAwNzEpCQkvLyBPa3RhbC1XZXJ0ZSBtaXQgZsO8aHJlbmRlciAwCgkJaWYgKHN0cltpXSA+PSAweDMwICYmIHN0cltpXSA8PSAweDM5KQkvLyBIZXgtV2VydGUKCQkJYW56WmFobGVuKys7CgkJaSsrOwkJCQkJLy8gTGF1ZnZhcmlhYmxlIGVyaMO2aGVuCgl9CglyZXR1cm4gYW56WmFobGVuOwp9Cgp2b2lkIGVpbmdhYmUoY2hhciBmZWxkW10sIGludCBtYXgpCnsKCXByaW50ZigiR2ViZW4gU2llIGVpbmVuIFN0cmluZyBlaW46ICIpOwoJLy9zY2FuZigiJXMiLCBmZWxkKTsKCWZnZXRzKGZlbGQsIG1heCwgc3RkaW4pOwp9