Zeichenketten in Zeichenketten zählen

M

MrCodeMaster

Hey Leute,

Hab wieder mal ein Problem, ich möcht eine Zeichenkette in einem String finden, ja das hab ich auch hinbekommen nur möcht ich jetzt haben, dass er mir sagt wie oft er diesen Teilstring gefunden hat.

Hier mal der Code:
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>



int main ()
{
  char str_a[]="Tanze Samba mit mir";
  char str_b[]="mi";
  int counter = 0;
  
  char *cnt;
  
  cnt = strstr(str_a, str_b);

  
  printf("%d",counter);
  getchar();
  return 0;
}
 
Ich würde eine Schleife machen, die alles was mit suchen zu tun hat enthält. Und immer wenn was gefunden wird counter++;
MfG
 
Und wie soll die Schleife aussehen?

Zum finden des Teilstrings braucht er nämlich keine Schleife.

Sry wenn ich mich blöd anstelle......
 
Du müsstest irgendwie die Position des gefundenen Wortes herausfinden. Dann kann man das mit der Schleife realisieren :)
 
Hallo,

strstr gibt einen Zeiger auf das erste Vorkommen des gesuchten Strings zurück, bzw. einen Nullzeiger, falls der Suchstring nicht auftaucht. Das kannst du ausnutzen, um nacheinander alle Vorkommen aufzuspüren:

C:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main ()
{
  char str_a[]="Tanze Samba mit mir";
  char str_b[]="mi";
  int counter = 0;
  
  char *found = strstr(str_a, str_b);
  while (found != NULL) {
    counter++;
    found += strlen(str_b); // Gefundenes Vorkommen überspringen
    found = strstr(found, str_b);
  } 
  
  printf("%d",counter);
  getchar();
  return 0;
}

Grüße,
Matthias
 
Zurück