String rückwärts ausgeben(Großbuchstaben verändern) in C

Manda

Erfahrenes Mitglied
Hallo zusammen,

ich hab da ein kleines Problem, wozu ich bislang keine Lösung gefunden habe.
Ich wollte nur einen String rückwärts ausgeben und gleichzeitig sollten die Großbuchstaben auch andersrum geschrieben werden:
Bsp:
String: Name
Rück: Eman (so das jetzt das E groß ist)
ich kann bis jetzt nur rückwärts ausgeben, dass mit den Großbuchstaben kriege ich nich hin. habt ihr tips?

2. Frage(oder Aufgabe die ich habe)
getchar() und putchar() üben:
Code:
int i	= 0;
int zeichen = 0;
char wohnort;
char wohnort1[30];
char nr[]	= "\n\n(3)\n";
char c[]	= "Geben Sie Ihren Wohnort (PLZ und Stadt) ein: ";
char wnrt[]	= "Wohnort: ";

while(nr[i] != '\0')//ausgabe der nr: (3)
	{
		putchar(nr[i]);
		i++;
	}
	i=0;
	while(c[i] != '\0')//ausgabe des satzes: "Geben..."
	{
		putchar(c[i]);
		i++;
	}
	i=0;	
	
	while( (wohnort = getchar()) != '\n')
	{		
		wohnort1[zeichen] = wohnort;
		zeichen++;
	}
	wohnort1[zeichen] = '\0';
	
	i=0;
	while(wnrt[i] != '\0')//ausgabe: "Wohnort:..."
	{
		putchar(wnrt[i]);
		i++;
	}
	i=0;

	while(wohnort1[i] != '\0')
	{
		putchar(wohnort1[i]);
		i++;
	}

------------------
das läuft zwar alles, aber irgendwie finde ich das unschön. Ausgabe soll einfach folgende sein:
Geben Sie Ihren Wohnort (PLZ und Stadt) ein: 12345 Stadt
Wohnort: 12345 Stadt
kann man das besser um schreiben, so dass ich für plz und wohnort 2 variablen benutzen kann

Ich hoffe ihr könnt mir helfen!! Danke schon mal im Vorraus!!

MfG
Manda
 
Moin,

hierfür gibt es die Funktionen uppercase und lowercase!!
Bitte die Codetags benutzen, da es sonst kaum nachvollziehbar ist!!

Gruß
Klaus
 
Hi.
hierfür gibt es die Funktionen uppercase und lowercase!!
Die Funktionen die du meinst heißen aber toupper und tolower.
2. Frage(oder Aufgabe die ich habe)
getchar() und putchar() üben:
C:
int i	= 0;
int zeichen = 0;
char wohnort;
char wohnort1[30];
char nr[]	= "\n\n(3)\n";
char c[]	= "Geben Sie Ihren Wohnort (PLZ und Stadt) ein: ";
char wnrt[]	= "Wohnort: ";

while(nr[i] != '\0')//ausgabe der nr: (3)
	{
		putchar(nr[i]);
		i++;
	}
	i=0;
	while(c[i] != '\0')//ausgabe des satzes: "Geben..."
	{
		putchar(c[i]);
		i++;
	}
	i=0;	
	
	while( (wohnort = getchar()) != '\n')
	{		
		wohnort1[zeichen] = wohnort;
		zeichen++;
	}
	wohnort1[zeichen] = '\0';
	
	i=0;
	while(wnrt[i] != '\0')//ausgabe: "Wohnort:..."
	{
		putchar(wnrt[i]);
		i++;
	}
	i=0;

	while(wohnort1[i] != '\0')
	{
		putchar(wohnort1[i]);
		i++;
	}
------------------
das läuft zwar alles, aber irgendwie finde ich das unschön. Ausgabe soll einfach folgende sein:
Geben Sie Ihren Wohnort (PLZ und Stadt) ein: 12345 Stadt
Wohnort: 12345 Stadt
kann man das besser um schreiben, so dass ich für plz und wohnort 2 variablen benutzen kann
C:
char plz[6], stadt[31];

printf("Geben Sie Ihren Wohnort (PLZ und Stadt) ein: ");
if (scanf("%5[0-9] %30s", plz, stadt) == 2) {
  printf("Wohnort: %s\nPLZ: %s\n", stadt, plz);
} else {
  // falsche Eingabe.
}
Gruß

PS: Du solltest wirklich die Code-Tags verwenden.
 
mea culpa, hast natürlich Recht! :suspekt:
Die anderen beiden wandeln ganze Strings um
C:
ios_base& uppercase(ios_base& str);
Nein, das ist ein Stream Manipulator, der in erster Linie erstmal gar nichts umwandeln, aber dazu führt das bei der Ausgabe auf dem entsprechenden Stream alles in Großbuchstaben konvertiert wird. Das betrifft allerdings nur vom Stream selbst generierte Buchstaben (z.B. bei hexadezimalen Zahlen), aber keine Strings die auf dem Stream ausgegeben werden.

Gruß
 
Zuletzt bearbeitet:
Hallo,

danke für die antworten, werde das mal probieren mit "lowercase". und werde das nächste mal auch dran denken die Code-Tags zu verweden.

schöne grüße!
 
Zurück