lc() und uc()
Letze Änderung: Mittwoch 22.02.2006
Plattformunabhängig
Wandelt eine Zeichenkette in Groß- und/oder Kleinbuchstaben um.
Lizenz: BSD
Diskussion zu lc() und uc()
Plattformunabhängig
Wandelt eine Zeichenkette in Groß- und/oder Kleinbuchstaben um.
Lizenz: BSD
#include <stdio.h>
#include <stdlib.h> // malloc
#include <string.h> // strlen
/*
wandelt den uebergebenen String in Kleinbuchstaben um
*/
void _lc(char *s){
unsigned i=0;
while (*(s+i)){
if (*(s+i)>64 && *(s+i)<91)
*(s+i)+=32;
i++;
}
return;
}
/*
wandelt eine Kopie des uebergebenen Strings in Kleinbuchstaben um;
Rueckgabewert NULL bei Fehler oder Adresse auf Kopie;
braucht stdlib.h und string.h
*/
char *lc(char *s){
unsigned i=0;
char *p;
if (NULL == s)
return NULL;
if ((p = (char *) malloc(sizeof(char) * strlen(s) + 1)) == NULL)
return NULL;
while (*(s+i))
*(p+i) = (*(s+i)>64 && *(s+i)<91) ? *(s+i++)+32 : *(s+i++);
*(p+i)=0;
return p;
}
/*
wandelt den uebergebenen String in Grossbuchstaben um
*/
void _uc(char *s){
unsigned i=0;
while (*(s+i)){
if (*(s+i)>96 && *(s+i)<123)
*(s+i)-=32;
i++;
}
return;
}
/*
wandelt eine Kopie des uebergebenen Strings in Grossbuchstaben um;
Rueckgabewert NULL bei Fehler oder Adresse auf Kopie;
braucht stdlib.h und string.h
*/
char *uc(char *s){
unsigned i=0;
char *p;
if (NULL == s)
return NULL;
if ((p = (char *) malloc(sizeof(char) * strlen(s) + 1)) == NULL)
return NULL;
while (*(s+i))
*(p+i) = (*(s+i)>96 && *(s+i)<123) ? *(s+i++)-32 : *(s+i++);
*(p+i)=0;
return p;
}
int main(){
char *ptr;
char string[]="Hallo Welt.";
// Vorher
printf("string: %s\n", string);
// Kleinbuchstaben
ptr=lc(string);
printf("ptr: %s\n", ptr);
printf("string: %s\n", string);
_lc(string);
printf("string geaendert: %s\n", string);
// Aufraeumen
puts("\n");
free(ptr);
ptr=NULL;
// Grossbuchstaben
ptr=uc(string);
printf("ptr: %s\n", ptr);
printf("string: %s\n", string);
_uc(string);
printf("string geaendert: %s\n", string);
return 1;
}
Diskussion zu lc() und uc()
Forum Code-Schnipsel (83 Beiträge)
