Code-Schnipsel
Moderatoren: broesel, Martin Conrad, PatrickThema: String in Gross- oder Kleinbuchstaben umwandeln
Re: String in Gross- oder Kleinbuchstaben umwandeln
Martin Conrad (webmaster) am 17.03.2006 um 18:00
Zitat:
Ich habe mich bei der Namensvergabe an Perl orientiert.
*unschuldigindieLuftguck* gehen wir mal davon aus, dass ich meine Studien zu Perl ein wenig vernachlässigt habe?
Bis denne, auch schönes WE!
Martin
--
0xC0FFEE
Re: String in Gross- oder Kleinbuchstaben umwandeln
broesel (webmaster) am 05.04.2006 um 16:09
Gruss,
Philip
--
The C Programming Quiz
- bitte Fragen einreichen :)
Re: String in Gross- oder Kleinbuchstaben umwandeln
Patrick (Moderator) am 05.04.2006 um 16:40
Die Funktionen tolower und toupper wandeln aber immer nur ein Byte um. Um einen kompletten String in Groß- oder Kleinbuchstaben umzuwandeln müsste man pro Byte tolower bzw. toupper aufrufen.
--
To follow the path: look to the master, follow the master, walk with the master, see through the master, become the master.
Re: String in Gross- oder Kleinbuchstaben umwandeln
broesel (webmaster) am 06.04.2006 um 16:26
Zitat:
Die Funktionen tolower und toupper wandeln aber immer nur ein Byte um.
Nein, ein int. Aber man muss natürlich nach wie vor zeichenweise konvertieren (aber nicht jedes Zeichen ist nur ein Byte lang bzw. durch Addition/Subtraktion einer Konstante in Groß-/Kleinschreibung zu konvertieren).
Gruss,
Philip
--
The C Programming Quiz
- bitte Fragen einreichen :)
[EDIT] - Re: String in Gross- oder Kleinbuchstaben umwandeln
Scavanger am 11.10.2009 um 12:12
super, den Code kann ich gerade super brauchen.
Allerdings wenn ich das Programm unter MS VS 2008 compiliere erhalte ich folgende Ausgabe:
Zitat:
string: Hallo Welt.
ptr: =hallo welt
string: hallo welt.
string geaendert: hallo welt.
ptr: =HALLO WELT
string: hallo welt.
string geaendert: HALLO WELT.
Mit MinGW passt die Ausgabe, aus irgendeinem Grund erfolgt de Umwandlung in der *lc und *uc eine Stelle zu weit rechts...
Mit folgendem Code funktioniert es auch unter VS 2008:
/*
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);
i++;
}
*(p+i)=0;
return p;
}
/*
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);
i++;
}
*(p+i)=0;
return p;
}
