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

news2024/12/27 10:46:42

简介: 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 函数的不同用法,包括查找字符、获取子串以及替换字符。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产品经理面试自我介绍,这3大错误千万别犯!

金三银四求职季&#xff0c;你是不是也有面试的冲动&#xff01;但面试并不是头脑一热就能取得好结果&#xff0c;在此之前&#xff0c;必须得有周全的准备&#xff0c;才能应对好面试官的“连环问”&#xff01; 所以&#xff0c;今天这篇产品经理面试干货分享给大家~ 今天文…

选择靠谱的su模型库免费下载,让你事半功倍!

在建筑设计、室内设计等领域&#xff0c;SU模型库的使用已经成为了一种趋势。选择一个靠谱的SU模型库进行免费下载&#xff0c;确实可以大大提高设计工作的效率。那么&#xff0c;如何选择一个靠谱的su模型库免费下载呢? 一、了解su模型库的基本功能 在选择su模型库时&#xf…

第十三届蓝桥杯省赛真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 裁纸刀试题 B: 寻找整数试题 C : \mathrm{C}: C: 求和试题 D: GCD试题 E: 蜂巢试题 F : \mathrm{F}: F: 全排列的价值试题 G: 青蛙过河试题 H \mathrm{H} H : 因数平方和试题 I: 最优清零方案试题 J : \mathrm{J}: J: 推导部分和 发现…

「MySQL」数据库约束

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;数据库 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 数据库约束 &#x1f349;约束类型&#x1f34c;NOT NULL&#x1f34c;UNIQUE&#x1f34c;DEFAULT&#x1f34c;主键&#x1f34c;外键…

HSP_03章_Pytho n 数据类型

文章目录 024 Python数据类型概述025 Python_整型int25-1各进制的整型表示方法25-2 Python_整型int 字节 026 Python_浮点型float26-1 浮点型的表现形式26-2 浮点型的大小限制边界26-3 浮点类型计算后,存在精度的损失,可以使用Decimal类进行精确计算 027 Python_布尔类型27-1 P…

Navicat Premium 16中文---数据库管理与开发的强大引擎

Navicat Premium 16是一款功能强大的数据库管理工具&#xff0c;旨在为用户提供高效、便捷的数据库连接、管理和保护体验。该软件支持多种数据库系统&#xff0c;如MySQL、Oracle、SQL Server等&#xff0c;满足用户多样化的需求。通过直观的图形界面&#xff0c;用户可以轻松进…

微信小程序实战:无痛集成腾讯地图服务

在移动互联网时代,地图服务无疑是应用程序中最常见也最实用的功能之一。无论是导航定位、附近搜索还是路线规划,地图服务都能为用户提供极大的便利。在微信小程序开发中,我们可以轻松集成腾讯地图服务,为小程序赋能增值体验。本文将详细介绍如何在微信小程序中集成使用腾讯地图…

Fomepay哪个卡段可以充值ChatGPT4

这两天Fomepay的5347与556150两个卡段真对AI订阅进行维护&#xff0c;所以想要充值ChatGPT4的小伙伴就要开4866卡段&#xff0c;这个卡段不可以开openai api key 点击获取486695卡段进行充值 开卡步骤非常简单 1、注册 2、点击申请卡 3、填写姓名&#xff0c;支付即可 4、开…

产品经理面试如何自我介绍?

金三银四求职季&#xff0c;你是不是也有面试的冲动&#xff01;但面试并不是头脑一热就能取得好结果&#xff0c;在此之前&#xff0c;必须得有周全的准备&#xff0c;才能应对好面试官的“连环问”&#xff01; 所以&#xff0c;今天这篇产品经理面试干货文章&#xff0c;别…

【linux】进程的地址空间

1.代码看现象引入 #include<stdio.h>#include<unistd.h>#include<string.h> #include<stdlib.h>int val100;int main (){ printf("i am father,pid:%d,ppid:%d,val:%d&#xff0c;&val:%p\n",getpid(),getppid(),val,&val);size_t…

Spring中@Service 、@Component、@Repository等注解区别是什么?

一、问题解析 在Spring框架中&#xff0c;有很多用来声明Spring管理的bean的常用注解。它们都是Component的特化形式&#xff0c;用于指定不同类型的组件&#xff0c;主要有以下几个&#xff1a; 1Component&#xff1a;是一个通用的组件声明注解&#xff0c;表示该类是一个Sp…

利用PSR,三步实现业务快速加载

01 什么是PSR PSR是通信业界在BSS/OSS域面向产品设计和业务开通过程中提出的一个标准化信息分层解耦和映射的框架&#xff0c;按照国际电信论坛TMF推荐的SID信息框架的标准&#xff0c;主要分为产品域、服务域和资源域等三层&#xff0c;支撑通信业务的快速加载和敏捷开通。 TM…

【LeetCode: 4. 寻找两个正序数组的中位数 + 二分查找】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

海外客户获取难?海外云手机助力电商引流!

海外电商面临的市场竞争激烈&#xff0c;如何在海外市场获客成为了摆在许多卖家面前的难题。而在这个问题的解决方案中&#xff0c;海外云手机崭露头角&#xff0c;成为助力电商引流的新利器。 在当前市场中&#xff0c;云手机主要用于游戏挂机&#xff0c;但其潜力在海外电商领…

什么是虚拟线程?

1、典型回答 Java 中的虚拟线程&#xff0c;也叫做协程或“轻量级线程”&#xff0c;它诞生于JDK 19(预览 API)&#xff0c;正式发布于 JDK 21&#xff0c;它是一种在 Java 虚拟机(JVM)层面实现的逻辑线程&#xff0c;不直接和操作系统的物理线程一一对应&#xff0c;因此它可…

Anaconda配置系统环境

首先&#xff0c;右键此电脑&#xff0c;点击属性 点击高级系统设计 点击环境变量 点击环境变量中系统环境下的Path&#xff0c;双击 如下图&#xff0c;添加这四项即可&#xff0c;注意&#xff0c;这都是Anaconda的安装目录下的内容 在windowsR的cmd情况下&#xff0c;输入co…

leetcode LCR121.寻找目标值-二维数组

目录 问题描述示例具体思路思路一思路二 代码实现 问题描述 m*n 的二维数组 plants 记录了园林景观的植物排布情况&#xff0c;具有以下特性&#xff1a; 每行中&#xff0c;每棵植物的右侧相邻植物不矮于该植物&#xff1b; 每列中&#xff0c;每棵植物的下侧相邻植物不矮于该…

刷题DAY27 | LeetCode 39-组合总和 40-组合总和II 131-分割回文串

39 组合总和&#xff08;medium&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates…

电脑中msvcp140_codecvt_ids.dll丢失的解决方法,实测有效的方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是缺少某个DLL文件。而msvcp140CODECVTIDS.dll就是其中之一。那么&#xff0c;msvcp140CODECVTIDS.dll是什么&#xff1f;msvcp140CODECVTIDS.dll文件属性又是什么呢&#xff1f;msvcp140C…

抖音小店怎么选品?从六点下手,才能选出爆款产品!

大家好&#xff0c;我是电商糖果 选品是做店的核心&#xff0c;它直接关系到店铺的流量和转化率&#xff0c;也就是店铺的收益。 这也是糖果在以往的文章中反复强调的&#xff0c;选品可以说非常重要了。 关于新手选品不知道从何下手&#xff0c;糖果自己总结了一下选品需要…