Stringbearbeitung
-
Hallo, habe folgendes Problem:
Ich möchte aus einem String die Großbuchstaben löschen:Eingabe: HallO
Ausgabe: allFolgende Funktion habe ich schon, bekomme aber nur Zeichenmüll als Ausgabe.
schonmal danke....
void delgross(char *s1, char *s2);
#include <stdio.h>
int main(void)
{char s1[20];
char s2[20];printf("String eingeben:\n");
scanf("%19s", s1);delgross(s1, s2);
printf("Der neue String lautet: %s\n", s2);
return 0;
}
void delgross(char *s1, char *s2)
{
int i = 0;while(s1[i] != '\0')
{
if((s1[i] >= 'A') && (s1[i] <= 'Z'))
{ i++;
}
else
s2[i] = s1[i];
i++;}
s2[i]='\0';
}
-
Du brauchst zwei verschiedene Indexvariablen, mit denen du durch die Arrays s1 bzw. s2 navigierst - deine Funktion lässt die Positionen in s2 unverändert, an denen in s1 ein Großbuchstabe steht (und die enthalten bei Programmstart Datenmüll).
-
funktioniert, danke für die schnelle hilfe