Menu schließen

Reverse a String using putBack in C

Frage: Reverse a String using putBack in C
(3 Antworten)


Autor
Beiträge 1
0
Ich muss den String "12345" umdrehen und dafuer muss ich auch putBack benutze .
Die Implementierung sollte rekursiv erfolgen :

char * reverseRec( char *s);

Ich wuerde mich freuen, wenn ihr mich helfen koennt. Danke im Voraus!
Frage von Ftmhm | am 13.05.2019 - 11:42


Autor
Beiträge 74
6
Antwort von Colirbi | 15.05.2019 - 09:17
Moin,

C oder C++. Falls C würde mich interessieren was putBack,
sein soll. Habt ihr das vorgegeben bekommen, sollt ihr putBack selbst implementieren? Eine Standardfunktion ist es nicht.

Wo hängst du denn bei der Aufgabe, eigentlich ist es ja nicht schwer. Macht dir die Rekursion Probleme?

 
Antwort von ANONYM | 15.05.2019 - 18:22
int length(char *s) { int n = 0;
while(*s != ``) {
n++; s++;
} return n; }
void copy(char* s, int n, char* t) {
int i = 0;
while(i < n) {
t[i] = s[i]; i++; }
}
char* putBack(char* s, char c) {
const int n = length(s);
char* r = malloc(sizeof(char) * (n+2));
copy(s, n, r);
r[n] = c;
r[n+1] = ``; return r; }


Autor
Beiträge 74
6
Antwort von Colirbi | 15.05.2019 - 19:25
Und was soll das jetzt sein? Das beantwortet wenig meiner Fragen.
Hast du das selbst geschrieben? Die Implementierung dieser Funktionen ist unnötig kompliziert und scheint mir auf den ersten Blick auch nicht zu compilen und es sind logik Fehler drin.
Falls der Code von dir kommt, gewöhne dir an Checks zu machen, wie zum Beispiel überprüfen, ob der String nicht eventuell leer ist. Das spart dir später ne Menge segfaults.

int length(char *s) {
int n = 0;
while (*s) {
n++;s++;
}
return n;
}

void recursiveHelper(char arr[], size_t start, size_t end) {
if (start < end) {
//dieser code könnte auch putBack sein
char tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
// bis hier

recursiveHelper(arr, ++start, --end);
}
}

char *reverseRec(char *s) {
int len = length(s);
if (len > 1)
recursiveHelper(s, 0, len - 1);

return s;
}

Verstoß melden
Hast Du eine eigene Frage an unsere Computer & Technik-Experten?

27 ähnliche Fragen im Forum: 0 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Computer & Technik
ÄHNLICHE FRAGEN:
  • Strukturelle Induktion
    Beweisen Sie die folgenden Aussagen für beliebige Funktionen f, beliebige natürliche Zahlen n und beliebige Listen xs. (a) sum ..
  • Informatik C Integer in Char -> Arrays
    Folgendes Szenario: tempdez wie dez sind definiert und somit komm ich dann auf mein Problem. Wie man bereits von der zweiten..
  • Arrays Aufgaben
    Weiß jemand wie das geht ? public class Test{ public static void main(String args){ String liste1 = new String; String ..
  • Haskell: Implementierung α- und β-Konversion Lam..
    Gegeben sei ein algebraischer Datentyp LExpr zur Darstellung von Ausdrücken des λ-Kalküls ohne Konstanten. data LExpr..
  • Java Strings
    Hey Leute, hab da ein Prolem mit Strings vom Typ String, und zwar möchte ich, dass wenn der String leer ("") ist, dass alle ..
  • Java Kommandozeilenparameter
    Hallo, ich soll eine Methode in Java schreiben, die einen String in Großbuchstaben umwandelt. Der Stringwert soll dem ..
  • mehr ...