当前位置: 首页 > news >正文

linux服务器开发笔记(日志部分)strrchr()及strchr()

一 比较 strchr()和strrchr()函数

char *strchr(const char *s, int c);

它表示在字符串 s 中查找字符 c,返回字符 c 第一次在字符串 s 中出现的位置,如果未找到字符 c,则返回 NULL。也就是说,strchr 函数在字符串 s 中从前到后(或者称为从左到右)查找字符 c,找到字符 c 第一次出现的位置就返回,返回值指向这个位置,如果找不到字符 c 就返回 NULL。

har *strrchr(const char *s, int c);

与 strchr 函数一样,它同样表示在字符串 s 中查找字符 c,返回字符 c 第一次在字符串 s 中出现的位置,如果未找到字符 c,则返回 NULL。但两者唯一不同的是,strrchr 函数在字符串 s 中是从后到前(或者称为从右向左)查找字符 c,找到字符 c 第一次出现的位置就返回,返回值指向这个位置。下面的示例代码演示了两者之间的区别:

PS:简单来讲就是strchr()和strrchr就是判断第二个参数是否为第一个参数的子字符串;如果不是返回NULL;如果是,strchr()从前往后查找,找到返回当前位置的地址,而strrchr()从后往前查找,找到返回当前地址;

其中第二个参数不仅可以是字符串,也可以为字符。

二测试代码

int main(void)
{
    char str[] = "I welcome any ideas from readers, of course.";
    char *fc = strchr(str, 'o');
    printf("strchr: %s\n", fc);
    char *rc = strrchr(str, 'o');	
    printf("strrchr: %s\n", rc);
    return 0;
}

示例代码运行结果为:
strchr: ome any ideas from readers, of course.
strrchr: ourse.

三 使用strrchr()从当前目录查找文件地址

假设file_name为 Server_log

const char *p = strrchr(file_name, '/home/Server_log');
if(p==NULL)
{
	printf("/home/路径下下没有Server_log\n");
}
else
{
	printf("/home/路径下有%s\n",file_name);
	printf("p对应的地址为%s\n",p);
}

假设在存在/home/Server_log则打印结果为:

/home/路径下有Server_log
p对应的地址为g

假设file_name为const char *型的数据

如果我们想要使用strrchr查找文件是否在指定目录存在,需要指定为绝对路径

strrchar()函数成功返回file_name首地址,失败返回NULL

相关文章:

  • 做直播网站用什么网上空间好/网络营销师证书有用吗
  • 做网站视频是什么专业/公司网络营销策划书
  • 新建网站怎么做关键词/如何进行关键词分析
  • 微信分享网站短链接怎么做/天津seo
  • 怎么做兼职类网站/搜一搜排名点击软件
  • 新手学做网站pdf/做网站需要准备什么
  • 基于FPGA的分形编码器verilog设计——详细版
  • jsp数据传递、九大内置对象、
  • 【C语言】-字符串和字符串函数(上)
  • 你就想这样一辈子躺平,还是改变这个世界?
  • 基于 FPGA 读取 AHT10 温湿度数据及 OLED 显示详细工程
  • 面试题-渗透测试实习生
  • windwos上vue开发环境搭建
  • 自然语言处理Transformer模型最详细讲解(图解版)
  • 涂鸦智能三明治音视频核心板(BK7256)开箱测评
  • 800行Python代码实现双十一自动登录抢购商品,这速度女友很爱
  • 13. K近邻模型
  • 【云原生】Spark on k8s 讲解与实战操作