strchr()

strchr ist definiert in der string, die in C über string.h, bzw. in C++ über cstring eingebunden wird.

Funktion

strchr() sucht ein Zeichen (char) in einem Speicherbereich.

Signatur

#include <string.h>
char const * strchr( char const * string, int value );

char * strchr( char * string, int value );</code>

string : Zeiger auf den Speicherblock, der durchsucht werden soll
value: Zeichen, dass gesucht werden soll. Das Zeichen wird als Integer übergeben, tatsächlich werden allerdings nur die unteren 8 Bit gesucht. Es sollte also ein char übergeben werden.

Return value: Zeiger auf das gefundene Element oder NULL.

Fehlerquellen

Wird das Nullbyte am Ende des Strings vergessen, so endet die Suche nicht am Ende des Strings und es findet ein lesender Zugriff auf Speicherbereiche statt, die nicht dem Programm zugeordnet sind. Dies endet daher häufig in einem Programmabsturz.

Beispiel

#include <string.h>      // definiert strchr
 
#include <stdio.h>       // definiert printf
#include <stdlib.h>      // definiert EXIT_SUCCESS
 
char const * string = "Hello proggen.org";
 
int main( void )
{
  char const * pos = strchr( string, 'p' );
 
  if( pos ) printf( "%s: 'p' gefunden an Position: %d\n", string, pos - string );
  else      printf( "%s: kein 'p' gefunden\n", string );
 
  pos = strchr( string, 'x' );
 
  if( pos ) printf( "%s: 'x' gefunden an Position: %d\n", string, pos - string );
  else      printf( "%s: kein 'x' gefunden\n", string );
 
  return EXIT_SUCCESS;
}

Ausgabe:

Hello proggen.org: 'p' gefunden an Position: 6
Hello proggen.org: kein 'x' gefunden

siehe auch