C语言之strchr用法实例(八十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:C语言之strchr用法实例。

2.strchr函数介绍

  • strchr 函数是 C 标准库 <string.h> 中的一个字符串处理函数,其作用是在一个字符串中查找指定字符的第一个匹配位置,并返回该位置的指针。
char *strchr(const char *str, int c);
  • 其中:
    str 是要进行查找的字符串。
    c 是要查找的字符。

  • strchr 函数会返回字符串 str 中第一次出现字符 c 的位置指针,如果找到了该字符,则返回其位置的指针;

  • 如果未找到该字符,则返回 NULL。

  • strchr函数的工作原理是从str指向的字符串的第一个字符开始,逐个字符地检查,直到找到与ch匹配的字符或者到达字符串的末尾。如果找到了与ch匹配的字符,函数返回该字符的地址;如果没有找到,函数返回NULL。

  • 例如,给定字符串"Hello, World!"和字符’o’,调用strchr(“Hello, World!”, ‘o’)将返回&‘o’,即字符’o’在字符串中的地址。

  • 需要注意的是,strchr函数对于大小写敏感,即’a’和’A’被视为不同的字符。此外,它只会查找第一个出现的字符,如果需要查找所有出现的字符,需要使用其他方法,比如循环。

  • strchr函数在处理字符串时非常有用,特别是在需要查找子字符串或修改字符串中的特定字符时。它广泛应用于字符串操作的各个领域,是C程序员必备的工具之一。

3.代码实例

<1>.查找字符串中是否包含某个字符:

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

int main() {
    const char *str = "hello";
    char ch = 'e';
    
    char *result = strchr(str, ch);
    
    if (result != NULL) {
        printf("Character '%c' found at position: %ld\n", ch, result - str);
    } else {
        printf("Character '%c' not found in the string.\n", ch);
    }
    
    return 0;
}

<2>.在字符串中查找某个字符,并获取其后的子串:

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

int main() {
    const char *str = "hello world";
    char ch = 'w';
    
    char *result = strchr(str, ch);
    
    if (result != NULL) {
        printf("Substring after '%c': %s\n", ch, result);
    } else {
        printf("Character '%c' not found in the string.\n", ch);
    }
    
    return 0;
}

<3>.在字符串中查找某个字符,并替换它为另一个字符:

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

int main() {
    char str[] = "hello";
    char find = 'l';
    char replace_with = 'x';
    
    char *result = strchr(str, find);
    
    if (result != NULL) {
        *result = replace_with;
        printf("After replacement: %s\n", str);
    } else {
        printf("Character '%c' not found in the string.\n", find);
    }
    
    return 0;
}

strchr 函数的不同用法,包括查找字符、获取子串以及替换字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/490791.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第二十天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

代码随想录算法训练营第二十天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 654.最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地…

vue项目使用eletron将打包成桌面应用(.exe)

vue项目使用eletron将打包成桌面应用(.exe) 1.前期准备 两个项目&#xff1a; 1、自己用vue cli创建的项目 2、第二个是去gitee将案例clone下来 案例地址 https://gitee.com/qingplus/electron-quick-start.git 2、测试案例是否可以正常运行 # 进入项目 cd electron-quick-…

k8s入门到实战(六)—— ConfigMap介绍

ConfigMap configmap 是 k8s 中的资源对象&#xff0c;用于保存非机密性的配置的&#xff0c;数据可以用 kv 键值对的形式保存&#xff0c;也可通过文件的形式保存。 什么是 configmap 在 k8s 中&#xff0c;ConfigMap 是一种用于存储应用程序配置数据的对象。它允许将配置信…

JVM(三)——字节码技术

三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…

家用洗地机什么牌子好?2024四款家用洗地机良心推荐

洗地机集合了吸拖扫为一体的清洁设备&#xff0c;可以吸走灰尘&#xff0c;吸走污渍&#xff0c;还能杀菌等等&#xff0c;高效清洁又省力&#xff01;对于工作忙的上班族&#xff0c;带娃的宝妈&#xff0c;还有体弱的老人都非常适合。但是说到选购产品这方面&#xff0c;很多…

leetcode mt simple

Leetcode-MT-Simple 文章实际写于2021年&#xff0c;那个炎热的夏天。 Leet Code 美团题库简单类总结&#xff0c;题目按照解法可大致分为数学法、计数法、位运算、双指针法、字符串、哈希表、栈、递归/迭代、排序法、匹配法、记忆化法、二分法、分治法、摩尔投票法、前缀和、…

头条网盘如何快速获取授权推广

近期可以说是网盘拉新的一个盛宴&#xff0c;好几家网盘为了抢夺用户&#xff0c;都在付费拉新用户&#xff0c;而如今头条网盘也需要开拓市场&#xff0c;方式也很简单粗暴&#xff0c;就是拿钱砸&#xff0c;而对于普通用户来说&#xff0c;只要获得授权&#xff0c;正是赚钱…

NVIDIA A100 NVLink 和 NVIDIA A100 PCIe的区别?

NVIDIA A100 NVLink 和 NVIDIA A100 PCIe 是两种不同连接方式的 NVIDIA A100 GPU。 NVIDIA A100 NVLink: 这种版本的 A100 GPU 使用 NVLink 连接方式&#xff0c;可以实现更高的带宽和更低的延迟。NVLink 是 NVIDIA 的一种专有连接技术&#xff0c;用于连接多个 GPU&#xff0c…

方案功能开发:智能机器人玩具

玩具电动趣萌机器人方案开发定制&#xff0c;东莞市酷得智能科技有限公司是研发型芯片贸易公司&#xff0c;可为制造厂商朋友定制软件底层方案。下面介绍一下机器人方案可实现的功能&#xff1a; 基础功能&#xff1a; 方向&#xff1a;前进&#xff0c;后退&#xff0c;左转&a…

10分钟搭建一套代码质量监控平台

01、jenkins安装部署 01、Jenkins下载 中文官网地址&#xff1a;https://www.jenkins.io/zh/ 02、Jenkins环境安装 安装jdk&#xff0c;上传jenkins安装包&#xff0c;启动jenkins&#xff0c;耐心等待启动完成(第一次需要个几分钟) java -jar jenkins.war 执行日志里一定…

JAVA面试大全之集合IO篇

目录 1、集合 1.1、Collection 1.1.1、集合有哪些类&#xff1f; 1.1.2、ArrayList的底层&#xff1f; 1.1.3、ArrayList自动扩容&#xff1f; 1.1.4、ArrayList的Fail-Fast机制&#xff1f; 1.2、MAP 1.2.1、Map有哪些类&#xff1f; 1.2.2、JDK7 HashMap如何实现…

基于springboot的交通管理在线服务系统的开发

传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服务系统软件来发挥其高效地信息处理的作用&#xff0…

人工智能的春天:改变已然发生

以下文章来源&#xff1a;青岛日报 某种意义上说&#xff0c;这个春天属于人工智能&#xff08;AI&#xff09;。 继一年多前ChatGPT惊艳全球后&#xff0c;OpenAI再次放出“王炸”成果——视频大模型Sora&#xff1b;苹果放弃布局多年的造车计划&#xff0c;将ALL in AI&#…

Leetcode第66题:加一

题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 代码实现 class Solution:def plusOne(s…

Temple of Doom靶场nodejs获取shellss-manager漏洞tcpdump提权

下载链接&#xff1a; Temple of Doom: 1 ~ VulnHub 下载完成后直接在vxbox中导入即可&#xff0c;网络链接模式根据自身情况而定&#xff08;我采用的桥接模式&#xff09; 正文&#xff1a; 先用nmap进行扫描靶机ip nmap -sn 192.168.1.1/24 对192.168.1.5进行端口探测&a…

解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题

已经配置好安全组以及初始化宝塔面板&#xff0c;还是无法访问镜像管理页面&#xff0c;提示此站点的连接不安全。 解决方案 将地址https改为http即可进入。 成功登录后&#xff0c;开启面板SSL即可。

商家店铺如何批量抓取淘宝、天猫、1688主图视频并下载保存

当前&#xff0c;大多的平台商品越来越多都有主图视频、评论视频、详情视频、然而&#xff0c;在一定程度上就意味着&#xff0c;这也是引流渠道的一步重要环节&#xff0c;如果自己的店铺商品没有相应的主图视频&#xff0c;很可以会严重流失客源。小编就为大家来介绍批量抓取…

图解MySQL目录

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 一 .图解MySQL介绍 重点突击 MySQL 索引、事务、锁、日志等面试常问知识。 二 . 基础篇 执行一条 select 语句&#xff0c;期间发生了什么&#xff1f; : 执行一条 select 语句&#xff0c;期间发生了什…

3.26学习总结java初步实现学生管理系统

(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程) 一.项目要求 学生类: 属性:id、姓名、年龄、家庭住址 添加功能: 键盘录入每一个学生信息并添加&#xff0c;需要满足以下要求: ID唯一 删除功能…

mmocr安装和使用

https://github.com/open-mmlab/mmocr/blob/main/README_zh-CN.md https://mmocr.readthedocs.io/en/dev-1.x/get_started/quick_run.html 介绍 MMOCR 是基于 PyTorch 和 mmdetection 的开源工具箱&#xff0c;专注于文本检测&#xff0c;文本识别以及相应的下游任务&#xf…