C :: Aufgabe #45

1 Lösung Lösung öffentlich

String einlesen, umkehren und Leerzeichen einfügen

Anfänger - C von pianoplayer - 30.11.2013 um 13:34 Uhr
Schreiben Sie eine Funktion reverse_add_blank!, die einen String entgegennimmt, die Reihenfolge der Buchstaben umkehrt und Leerzeichen einfügt. Die Funktion soll den String verändern!

Lösungen:

vote_ok
von devnull (8870 Punkte) - 01.12.2013 um 14:50 Uhr
Quellcode ausblenden C-Code
/********************************************
 * rev_add_blank.c  reverse string with blanks
 * devnull          01-12-2013                
 ********************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define STR_LEN   1000

char* reverse_add_blank(char *s)
{
	char *ds, *pd, *ps;
	
	if ((ds = strdup(s)) != NULL) {
		for (ps=s, pd=ds+strlen(s); pd > ds;) {
			*ps++ = *--pd;
			*ps++ = ' ';
		}
		*--ps = '\0';
		free(ds);
	}
	return s;
}

int main( )
{
    char str[STR_LEN+1];

	printf("Input: " );
    if (gets(str) != NULL)
		if (strlen(str) > 0) {
			printf("Original String: [%s]\n", str);
			printf("Returned String: [%s]\n", reverse_add_blank(str));
			printf("Modified String: [%s]\n", str);
		}
	return 0;
}