Advertisement
Pany

Untitled

Jan 22nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1.  
  2. #include "stdafx.h"
  3. #include<iostream>
  4. #include<cstring>
  5. using namespace std;
  6.  
  7. /*Schreiben Sie eine Funktion, die als Parameter einen String bekommt und prüft
  8. ob das übergebene Wort ein Palindrom ist. Die Funktion liefert einen Wahrheitswert
  9. als Ergebnis(also true wenn das Ergebnis ein Palindrom ist, false, wenn nicht. )
  10. Palindrome sind Wörter(oder ganze Sätze), die mit umgekehrter Reihenfolge
  11. wieder sich selbst ergeben.
  12. Benutzen Sie in diese neuen Funktion die Funktion aus der vorherigen Aufgabe, um eine Kopie
  13. des Parameters in Großbuchstaben umzuwandeln(Der Parameter soll nicht geändert werden!)
  14. Damit werden Sie unabhängig von der Groß-/Kleinschreibung.
  15. Probieren Sie Ihre Funktion ausgiebig aus, ob sie auch richtig funktioniert.
  16. */
  17.  
  18.  
  19. char*wandeleInGrossbuchstaben(char*string1)
  20. {
  21. int length = strlen(string1);
  22. char* grossbuchstaben = new char[length + 1];
  23.  
  24. for (int start = 0;start < length;start++)
  25. {
  26. grossbuchstaben[start] = string1[start];
  27.  
  28. //Alles was größer als 96 sind Kleinbuchstaben
  29. if (grossbuchstaben[start] > 96)
  30.  
  31. {
  32. grossbuchstaben[start] -= 32;
  33. //zieht 32 ab, damit wir auf Großbuchstaben kommen
  34. }
  35. }
  36.  
  37. grossbuchstaben[length] = '\0';
  38.  
  39. return grossbuchstaben;
  40. }
  41.  
  42.  
  43.  
  44. int main()
  45. {
  46. //string deklarieren
  47. char* string2;
  48. char string1[20];
  49. int start, end, flag = 1;
  50.  
  51.  
  52.  
  53. cout << "Geben Sie ein string ein!" << endl;
  54. cin >> string1;
  55.  
  56. string2 = wandeleInGrossbuchstaben(string1);
  57.  
  58.  
  59. start = 0;
  60. end = strlen(string2) - 1;//fangen bei 0 an.
  61.  
  62. while (start < end)
  63. {
  64. //Wenn Anfang und Ende von Char ist nicht identisch
  65. //bricht die Schleife ab.
  66. if (string2[start] != string2[end])
  67. {
  68. //Wenn Anfang ungleich Ende von string
  69. //wissen wir dass es kein Palindrom ist.
  70. flag = 0;
  71. break;
  72. }
  73. start++;
  74. end--;
  75. }
  76.  
  77. if (flag)
  78. {
  79. cout << string1 << " ist ein Palindrom" << endl;
  80. }
  81. else
  82. cout << string1 << " ist kein Palindrom" << endl;
  83.  
  84.  
  85. cout << string2 << endl;
  86.  
  87.  
  88. system("Pause");
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement