首页 > 其他分享 >C语言字符串处理函数strstr的用法

C语言字符串处理函数strstr的用法

时间:2024-06-12 19:00:17浏览次数:18  
标签:strstr str2 str1 C语言 char 字符串 处理函数

C语言字符串处理函数strstr的用法

在C语言中,strstr函数是一个字符串处理函数,用于在一个字符串(称为“主字符串”)中查找另一个字符串(称为“子字符串”)的首次出现。如果找到子字符串,则该函数返回一个指向主字符串中子字符串首次出现位置的指针;如果没有找到,则返回NULL。

函数的原型定义在 <string.h> 头文件中:

char *strstr(const char *str1, const char *str2);
  • tr1 是主字符串,即在其中搜索 str2 的字符串。
  • str2 是子字符串,即要在 str1 中搜索的字符串。

以下是一个简单的使用示例:

#include <stdio.h>  
#include <string.h>  
  
int main() {  
    char str1[] = "Hello, World! This is a test.";  
    char str2[] = "World";  
    char *result;  
  
    result = strstr(str1, str2);  
  
    if (result != NULL) {  
        printf("Found '%s' in '%s' at position: %ld\n", str2, str1, result - str1);  
    } else {  
        printf("'%s' not found in '%s'\n", str2, str1);  
    }  
  
    return 0;  
}

在这个例子中,strstr 函数在 str1 中查找 str2("World")。如果找到,它将打印出子字符串在主字符串中的首次出现位置(通过计算返回的指针与主字符串指针的差值得到)。如果未找到,它将打印出相应的消息。

请注意,strstr 函数返回的指针指向的是主字符串中首次出现子字符串的位置,而不是一个新的字符串。因此,返回的指针和主字符串的内存是相关的,并且在使用时需要特别小心,以确保不会超出字符串的边界。

如果代码用法有什么问题,请将问题发至网易邮箱 [email protected],作者将及时改正,欢迎与各位老爷交流讨论。

麻烦三连加关注!!!!

比心

标签:strstr,str2,str1,C语言,char,字符串,处理函数
From: https://www.cnblogs.com/zkbklink/p/18244530

相关文章

  • c语言开发 php扩展 sm4
    首先php可以直接调用openssl直接进行sm4sm3的加密如:openssl_encrypt($plaintext,'sm4-cbc',$key,OPENSSL_RAW_DATA,$iv);openssl_digest('123','sm3')php如果直接调用sm2需要统一使用openssl的evp接口openssl1.1的源码在sm2_crypt文件里面此处只是学习/*gmteste......
  • c语言实现密码学算法应用
    一实验目的   1、掌握对称密钥密码体制的基本概念;   2、掌握对称密钥密码体制DES加密/解密的工作原理;   3、掌握非对称密码算法RSA加密/解密的基本原;   4、通过用DES和RSA算法对实际的数据进行加密/解密运算深刻理解加密算法原理。二实验内容   根据给......
  • c语言目录操作
    在shell中我们可以直接输入命令pwd来显示当前的工作目录,在C程序中调用getcwd函数可以获取当前的工作目录。函数声明:char*getcwd(char*buf,size_tsize);需要头文件:#includegetcwd函数把当前工作目录存入buf中,如果目录名超出了参数size长度,函数返回NULL,如果成功,返回buf......
  • C语言详解(编译和链接)
    Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎~~......
  • 【C语言】12.C语言内存函数
    文章目录1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用memcpy:内存拷贝memmove:内存移动memset:内存设置memcmp:内存比较1.memcpy使用和模拟实现memcpy:内存拷贝void*memcpy(void*destination,constvoid*source,......
  • 操作系统 c语言模仿 磁盘文件操作
    1.实验目的深入了解磁盘文件系统的实现。2.实验预备知识文件的操作;文件的逻辑结构和物理结构;磁盘空间的管理;磁盘目录结构。3.实验内容设计一个简单的文件系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现:支持多级目录结构,支持文件的绝对读路径;文件的逻辑结构采用流式结构,......
  • 初识C语言--第五天
    ---循环语句--while循环    格式:                while(条件){        循环语句块;                }流程图:示例代码:输出结果:  -break用法        break用在循环中是用来终止循环的,当满足某个......
  • 新手学习c语言_第五部分
    静态static修饰局部变量一般用在方法中,比如我们建立一个10次的循环,每次调用一个方法,打印内部的变量自增voidadd(){ intcount=0; count++;printf("%d\n",count);}intmain(){ //static修饰局部变量,可使它不会销毁,下次调用还是上次剩下的值 for(inti......
  • C语言中关于Base64编码的基础原理
    Base64编码简述:1.Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。2.Base64,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+"、"/"一共64个字符的字符集,(任何符号都可以转换成这个字符集中的字符,这个转换过......
  • 【C语言】预处理详解(下卷)
    前言紧随上文。命令行定义比如关机命令:shutdown-s-t60其中-s,-t是命令行参数。传的参数不同,效果也不同。许多C的编译器提供了一种能力,允许在命令行中定义符号,用于启动编译过程。如,当我们根据同一个源文件要编译出一个程序的不同版本时,这个特点有些用处。(假如某个程......