C 库 - strchr() 函数



C 库的 strchr() 函数用于查找给定字符串中某个字符的首次出现位置。此函数可以处理空字符(\0)或以 null 结尾的字符串。此函数在各种文本处理任务中很有用,用户需要在其中找到特定的字符。

语法

以下是 C 库 strchr() 函数的语法:

char *strchr(const char *str, int search_str)

参数

此函数接受以下参数:

  • str - 此参数表示给定的字符串。

  • search_str - 此参数指的是要在给定字符串中搜索的特定字符。

返回值

此函数返回指向字符串 (str) 中字符 “search_str” 首次出现位置的指针,如果未找到该字符,则返回 NULL。

示例 1

以下是一个基本的 C 库程序,它演示了如何使用 strchr() 函数在给定字符串中搜索字符。

#include <stdio.h>
#include <string.h>
int main () 
{
   const char str[] = "Tutorialspoint";
   // "ch" is search string
   const char ch = '.';
   char *ret;
   ret = strchr(str, ch);
   printf("String after |%c| is - |%s|\n", ch, ret);
   return(0);
}

输出

执行上述代码后,我们得到的结果值为 null,因为在字符串中没有找到字符“.”。

String after |.| is - |(null)|

示例 2

在这里,我们有一个特定的字符来确定从给定字符串中提取子字符串。

#include <stdio.h>
#include <string.h>
int main() 
{
   const char *str = "Welcome to Tutorialspoint";
   char ch = 'u';
   // Find the first occurrence of 'u' in the string
   char *p = strchr(str, ch);

   if (p != NULL) 
   {
       printf("String starting from '%c' is: %s\n", ch, p);
   } 
   else 
   {
       printf("Character '%c' not found in the string.\n", ch);
   }
   return 0;
}

输出

上述代码产生以下结果:

String starting from 'u' is: utorialspoint

示例 3

在本例中,我们将找到给定字符串中字符的位置。

#include <stdio.h>
#include <string.h>

int main() 
{
   char str[] = "This is simple string";
   char* sh;

   printf("Searching for the character in 's' in the given string i.e. \"%s\"\n", str);
   sh = strchr(str, 's');

   while (sh != NULL) 
   {
       printf("Found at position- %d\n", sh - str + 1);
       sh = strchr(sh + 1, 's');
   }
   return 0;
}

输出

执行上述代码后,我们观察到字符“S”在给定字符串的不同位置出现了 4 次。

Searching for the character in 's' in the given string i.e. "This is simple string"
Found at position- 4
Found at position- 7
Found at position- 9
Found at position- 16
广告