Teil aus char löschen?

athlon

Mitglied
Bsp:

Code:
char = "Hallo/welt";

Wie kann ich jetzt das "Hallo/" daraus löschen sodass nur das welt in einem char übrigbleibt?
 
Hm, ein einfacher Algorithmus wäre den String byte für byte zu kopieren, bis du zum Anfang des zu löschenden Abschnitts kommst, den Abschnitt auszusparen und dann weiter byte für byte zu kopieren. Gibt bestimmt auch eine vorgefertigte Funktion dafür (selbst machen bringt dich aber weiter).
 
<pingel>
Code:
char = "Hallo/welt"; // das ist falsch
char[]= "Hallo/welt"; // das ist richtig
Du meintest anscheinend ein char-Array. Ein char ist ja nur ein einzelnes Zeichen.
</pingel> ;)
 
Oh großer Meister vergib mir..........

und wenn du schon dabei bist:
ich brauche doch ne Funktion um nur das "o/w" zu finden und zu löschen.......
 
He, ich habe mich doch selber vertan! :eek: :-) So muesste es aussehen:
Code:
char test = "Hallo/welt"; // das ist falsch
char test[]= "Hallo/welt"; // das ist richtig

Und hier kommt dein Suchbeispiel (C++):
Code:
#include <algorithm>
#include <cstring>
#include <iostream>

int main()
{
  char test[]    = "Hallo/welt";
  char suchdas[] = "o/w";

  char* fundstelle = std::search( test,    test    + strlen( test    ), 
                                  suchdas, suchdas + strlen( suchdas )  );

  std::cout << "Gefunden an Position " << fundstelle - test;
  
  char c;
  std::cin >> c;

  return 0;
}

Das mit dem Löschen könntest du mit std::copy erledigen. Hast du dir überlegt, mit std::string zu arbeiten?
 
Zuletzt bearbeitet:
lol? hat das Board etwa einen böse wort filter?

ich wollte sagen ich bin ein [ahja wird zensiert] n 0 0 b
und hab also k.a
 
Meine Version in C:
Code:
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
	char str[] = "Hallo/welt";
	char str2[] = "o/w";
	char *nstr;

	printf("vorher : %s\n", str);
	nstr = strstr(str, str2);
	memmove(nstr, nstr+strlen(str2), strlen(nstr) - strlen(str2) + 1);
	printf("nachher: %s\n", str);

	return 0;
}
 
Zurück