Archiv verlassen und diese Seite im Standarddesign anzeigen : Einzelne Zeichen aus Zeichenkette entfernen ?
Hallo Community,
ich habe ein kleines Problem und zwar möchte ich in C aus einer Zeichenkette (zb. "das|ist|ein|test") ein bestimmtes Zeichen entfernen. In diesem Falle wäre es das "|", so dass das die Zeichenkette wie folgt lautet: "dasisteintest".
Sollte jemand eine Idee haben, wäre ich auf eine Antwort sehr dankbar.
Danke im Vorraus,
Prick
anda_skoa
06-06-2002, 08:33
void removeChar(char* string, char remCh)
{
int pos;
for (pos = 0; pos < strlen(string); ++pos)
{
if (strlen[pos] == remChar)
{
int len = strlen(string);
len -= pos;
strncpy(string[pos], string[pos+1], len);
}
}
}
Nicht getestes, so ähnlich sollte es aber gehen.
Ciao,
_
Am einfachsten gehts so:
char array[]="Dies!ist!ein!Test";
char *ptr;
int i;
for(i=0;array[i]!='\0';i++){
if(array[i]=='!'){
ptr=&array[i+1];
array[i]=0;
strcat(array,ptr);
i--;
}
}
anda_skoa
06-06-2002, 12:50
Ah, du hast recht. :)
aray{i] != '\0' ist wirklich besser als jedesmal strlen, und strcat ist auch einfacher
Muß ich mir merken.
Ciao,
_
Auf die einfachsten Lösungen kommt man meist immer erst,
wenn man die schwierigste schon programmiert hat.
nochmal eine Frage:
Wäre es nun auch möglich aus dem zu ersetzenden Zeichen ein Leerzeichen einzusetzen, so dass der String dann so aussieht: "Das ist ein Test" ?
Danke nochmals.
Einfach mit einer Schleife durch den String gehen und jedes einzelne Zeichen prüfen ob es ein "unerwünschtes" Zeichen ist und in dem Fall durch das Leerzeichen ersetzen:
char array[] = "Dies!ist!ein!Test";
int i = 0;
while ( array[i] != '\0')
{
if ( array[i] == '!' )
{
array[i] = ' ';
}
i++;
}
Gruss Boron
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.