在C/C++中使用strstr()
时间:2020-02-23 14:30:06 来源:igfitidea点击:
在本文中,我们将介绍如何在C/C++中使用strstr()函数。
如果要查找一个字符串是否是另一个字符串的子字符串,则strstr()函数非常有用。
它还为我们提供了第一场比赛的指针!
由于这种方便,strstr()
在C语言中经常使用,因为它是C语言标准的一部分。
C/C++中strstr()的基本语法
该函数接受两个输入字符串" search_string"和" target"。
其中我们将在字符串" search_string"中搜索目标模式" target"。
注意:此函数将忽略两个字符串的终端" \ 0"
如果找到,它将返回" char *"指针指向第一个匹配项的第一个字符。
如果" target"不是" search_string"的子字符串,则返回值为" NULL"。
另外,它在 <string.h>
头文件中定义,因此请确保首先包含此头文件!
#include <string.h> char* strstr(const char* search_string, const char* target);
现在,此说明对您来说必须非常清楚。
现在,让我们看一些示例,以准确了解发生了什么。
在C/C++中使用strstr()–一些示例
让我们输入一个简单的字符串" Hello from theitroad",然后搜索" theitroad"。
如果此功能可以正常工作,我们将获得一个指向第一个匹配字符(" J")的指针。
让我们先编写程序。
#include <stdio.h> #include <string.h> int main() { char* search_string = "Hello from theitroad"; char* target = "theitroad"; printf("Search String: %s\n", search_string); printf("Target Pattern: %s\n", target); char* result = strstr(search_string, target); if (result == NULL) { printf("Target pattern is not a substring!\n"); } else { printf("Target pattern is a substring!\n"); printf("First character of result = %c\n", *result); printf("The complete result string (result) = %s\n", result); } return 0; }
输出
Search String: Hello from theitroad Target Pattern: theitroad Target pattern is a substring! First character of result = J The complete result string (result) = theitroad
确实,我们得到了我们所期望的! " strstr()"发现" theitroad"是" hello from theitroad"的子字符串,并返回指向第一个匹配项(" J")的指针。
从那里,我们可以简单地打印字符串的其余部分,它是原始字符串(" theitroad")的子字符串!
现在,让我们采用另一个字符串,它不是输入的子字符串。
#include <stdio.h> #include <string.h> int main() { char* search_string = "Hello from theitroad"; char* target = "Hi theitroad"; printf("Search String: %s\n", search_string); printf("Target Pattern: %s\n", target); char* result = strstr(search_string, target); if (result == NULL) { printf("Target pattern is not a substring!\n"); } else { printf("Target pattern is a substring!\n"); printf("First character of result = %c\n", *result); printf("The complete result string (result) = %s\n", result); } return 0; }
输出
Search String: Hello from theitroad Target Pattern: Hi theitroad Target pattern is not a substring!
由于我们的目标模式不是输入的子字符串,因此result
将为'NULL'!