C :: Aufgabe #168 :: Lösung #1
3 Lösungen
#168
Groß- und Kleinuchstaben
Anfänger - C
von MeLThRoX
- 22.08.2017 um 19:03 Uhr
Erstelle ein Programm, welches in einem String die Kleinbuchstaben in Großbuchstaben umwandelt und andersherum. Zahlen und Zusatzzeichen sollen nicht beachtet werden
#1
von devnull (8870 Punkte)
- 27.08.2017 um 22:36 Uhr
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <wctype.h>
#include <stdio.h>
#include <locale.h>
#define BUFLEN 256
/* convert multi byte string from upper to lower an vice versa */
char* ul2lu(char *out, const char *in) {
mbstate_t ps, pst;
const char *mbin;
char *mbout;
wchar_t wc, wct;
size_t wcl, wctl;
memset(&ps, 0, sizeof(mbstate_t));
memset(&pst, 0, sizeof(mbstate_t));
mbin = in;
mbout = out;
while ((wcl = mbrtowc(&wc, mbin, MB_CUR_MAX, &ps)) > 0) {
wct = (iswlower(wc))?(wchar_t)towupper(wc):(wchar_t)towlower(wc);
wctl = wcrtomb(mbout, wct, &pst);
mbout += wctl;
mbin += wcl;
}
wcrtomb(mbout, L'\0', &pst); /* terminate mb string */
return out;
}
int main(int argc, char **argv) {
char outbuf[BUFLEN];
printf("locale = %s\n", setlocale(LC_ALL, ""));
if (argc > 1) {
printf("your string: %s\n", argv[1]);
printf(" converted: %s\n", ul2lu(outbuf, argv[1]));
}
return 0;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
