Find a character in a string.
char *strchr( const char *string, int c
);wchar_t *wcschr( const wchar_t *string, wchar_t c
);unsigned char *_mbschr( const unsigned char *string, unsigned int c
);
Parameters
string
Null-terminated source string.
c
Character to be located.
Return Value
Each of these functions returns a pointer to the first occurrence of c in string, or NULL if c is not found.
Remarks
The strchr function finds the first occurrence of c in string, or it returns NULL if c is not found. The null-terminating character is included in the search.
wcschr and _mbschr are wide-character and multibyte-character versions of strchr. The arguments and return value of wcschr are wide-character strings; those of _mbschr are multibyte-character strings. _mbschr recognizes multibyte-character sequences according to the multibyte code page currently in use. These three functions behave identically otherwise.
Generic-Text Routine Mappings
TCHAR.H routine
_UNICODE & _MBCS not defined
_MBCS defined
_UNICODE defined
_tcschr
strchr
_mbschr
wcschr
Requirements
Routine
Required header
Compatibility
strchr
<string.h>
ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
wcschr
<string.h> or <wchar.h>
ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
_mbschr
<mbstring.h>
Win 98, Win Me, Win NT, Win 2000, Win XP
For additional compatibility information, see Compatibility in the Introduction.
Libraries
All versions of the C run-time libraries.
Example
// crt_strchr.c
/*
This program illustrates searching for a character
with strchr (search forward) or strrchr (search backward).
*/
#include <string.h>
#include <stdio.h>
int ch = 'r';
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
int main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n %s\n", string );
printf( " %s\n %s\n\n", fmt1, fmt2 );
printf( "Search char: %c\n", ch );
/* Search forward. */
pdest = strchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "Result: first %c found at position %d\n",
ch, result );
else
printf( "Result: %c not found\n" );
/* Search backward. */
pdest = strrchr( string, ch );
result = (int)(pdest - string + 1);
if ( pdest != NULL )
printf( "Result: last %c found at position %d\n", ch, result );
else
printf( "Result:\t%c not found\n", ch );
}
Output
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
Search char: r
Result: first r found at position 12
Result: last r found at position 30
See Also
String Manipulation Routines | strcspn | strncat | strncmp | strncpy | _strnicmp | strpbrk | strrchr | strstr | Run-Time Routines and .NET Framework Equivalents
Send feedback on this topic to Microsoft
(c) Microsoft Corporation. All rights reserved.
[此贴子已经被作者于2006-1-19 19:03:03编辑过]