Hallo,
ich möchte kleinbuchstaben in GRO?BUCHSTABEN wandeln.
Das geht soweit auch gut mit toupper().
hier der code
while( i != strlen(string) )
{
c = string[i];
c = toupper(c);
putchar(c);
i++;
}
jetzt möchte ich aber die Großbuchstaben nicht auf der Konsole ausgeben,
sondern in einen String schreiben um sie weiter zu verarbeiten.
Wie mache ich das - das das "c" ja ein dezimal-wert (ascii) ist!!
ah problem gelöst:) die fehlende zeile muss lauten: sprintf( temp, "%c", c );
Gast
#2264588
Der String besteht doch nur aus 'ASCII-Werten':
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Mit Zeigern gehts noch eleganter.
Gast
#2264589
Ähm: Warum sprintf() nehmen ??? Das ist wohl Overkill. Einfacher: temp[0] = c;
Gast
#2264596
Sven P. schrieb: > s[i] = toupper(s[i]); Die Zuweisung geht wohl schief, ich sehe nirgends deklarierten oder allokierten Speicher, nur ein Sven P. schrieb: > char *s; Da klingelts aber lichterloh im Karton.
trocken weggehackt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
könnte so funktionieren ...
Gast
#2264962
Random ... schrieb: > könnte so funktionieren ... Nö. Was machst du mit dem ersten Zeichen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
stimmt, mein ursprünglicher Ansatz mit der do ... while war doch besser. Das kommt davon, wenn man noch rumeditiert :-)
Gast
#2265000
Du hast die Umlaute vergessen :)
Und alle sonstigen, nicht-ASCII Kleinbuchstaben irgendwelcher Sprachen der Welt die auch zu Großbuchstaben werden wollen. Es ist auch etwas grenzwertig, erst zu konvertieren und dann zu testen ob es ein Null-Byte war. Funktioniert nur, weil die Konvertierung Null-Bytes unangetastet lässt.
Gast
#2265081
pff das einzig wahre toUpper ;) 5. Bit löschen, für toLower 5. Bit setzen
1 | |
2 | |
Gast
#2265156
us73 schrieb: > Da klingelts aber lichterloh im Karton. Hast du mal überlegt, dass die Zeichenkette auch irgendwo her kommen muss? Ich bin in meinem Auszug stillschweigend genau davon ausgegangen. Ich habe aber auch nie Anspruch darauf erhoben, dass mein Schnippel vollständig ist. Er ist syntaktisch korrekt und der Kernpunkt, die Schleife nämlich, ist semantisch korrekt, denke ich. Nu is gut.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.