fork download
  1. #include <stdio.h>
  2. #pragma warning(disable : 4996)
  3. const int MAXSTR = 10; // Stringlaenge
  4.  
  5. // Nach alldem: Funktionen heissen nun Elementfunktionen oder Methoden
  6.  
  7. class Beva {
  8. private:
  9.  
  10. public:
  11. // 2. Funktionsprototyping
  12. void begruessung(void);
  13. void ausgabe(int);
  14. int verarbeitung(char []);
  15. void eingabe(char[], int);
  16.  
  17. };
  18.  
  19. Beva objekt; // Objekt instanziieren
  20.  
  21. int main(void)
  22. {
  23. char str[MAXSTR];
  24. const char str2[] = "Teststring"; // in C: 0-terminierter String
  25. int i = 0; // Laufvariable
  26. int anzZahlen = 0;
  27. int anzGrossBuchstaben = 0;
  28.  
  29. objekt.begruessung(); // 1. Funktionsaufruf mit objekt verbinden
  30. objekt.eingabe(str, MAXSTR);
  31. anzZahlen = objekt.verarbeitung(str); // 1. Funktionsaufruf mit Rückgabewert
  32. objekt.ausgabe(anzZahlen); // 1. Funktionsaufruf mit Parameter
  33. objekt.ausgabe(10); // bei cbv auch eine Konstante als Übergabeparameter
  34.  
  35. fflush(stdin); // Tastaturpuffer löschen
  36. getchar(); // Warte auf Enter-Taste
  37. }
  38.  
  39. // 3. Funktionsdefinition
  40. void Beva :: begruessung(void)
  41. {
  42. printf("\t\tWORD COUNT PROGRAMM Version 1.0 with simple class\n");
  43. printf("\tZaehlt die Anzanl der Zahlen\n\n");
  44. }
  45.  
  46. void Beva :: ausgabe(int aus) // Prameterübergabe: call by value (cbv)
  47. {
  48. printf("\nAnzahl Zahlen= %d\n", aus);
  49. }
  50.  
  51. int Beva :: verarbeitung(char str[])
  52. {
  53. int i = 0;
  54. int anzZahlen = 0;
  55.  
  56. // siehe ASCII-Tabelle: https://d...content-available-to-author-only...a.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Tabelle
  57. while (str[i] != 0) // Integer 0 entspricht char '\0'
  58. {
  59. //if (str[i] >= '0' && str[i] <= '9') // Zeichen aus ASCII-Tabelle
  60. //if (str[i] >= 48 && str[i] <= 57) // Dezimale-Werte aus ASCII-Tabelle
  61. //if (str[i] >= 060 && str[i] <= 071) // Oktal-Werte mit führender 0
  62. if (str[i] >= 0x30 && str[i] <= 0x39) // Hex-Werte
  63. anzZahlen++;
  64. i++; // Laufvariable erhöhen
  65. }
  66. return anzZahlen;
  67. }
  68.  
  69. void Beva :: eingabe(char feld[], int max)
  70. {
  71. printf("Geben Sie einen String ein: ");
  72. //scanf("%s", feld);
  73. fgets(feld, max, stdin);
  74. }
Success #stdin #stdout 0s 15224KB
stdin
AA1234aa
stdout
		WORD COUNT PROGRAMM Version 1.0 with simple class
	Zaehlt die Anzanl der Zahlen

Geben Sie einen String ein: 
Anzahl Zahlen= 4

Anzahl Zahlen= 10