Find the first occurrence of a character in a string
#include <string.h> char* strchr( char* s, int c ); char* strchr_isr( char* s, int c );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The strchr() function finds the first occurrence of c (converted to a char) in the string pointed to by s. The terminating NUL character is considered to be part of the string. The strchr_isr() is similar, but it's safe for you to use it in an interrupt service routine.
A pointer to the located character, or NULL if c doesn't occur in the string.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main( void ) { char buffer[80]; char* where; strcpy( buffer, "video x-rays" ); where = strchr( buffer, 'x' ); if( where == NULL ) { printf( "'x' not found\n" ); } else { printf( "'x' found: %s\n", where ); } return EXIT_SUCCESS; }
Processes that register ISRs shouldn't use the NEON versions.
strchr() is ANSI, POSIX 1003.1; strchr_isr() is QNX Neutrino.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | Read the Caveats |
Signal handler | Yes |
Thread | Yes |
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |
Implementations of strchr() that are optimized using SIMD instructions aren't safe to use in an interrupt handler. These include the NEON implementations on ARMv7 and AArch64.