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

编程技能:字符串函数10,strchr

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程技能:字符串函数09,strncmp

回到目录

下一篇:编程技能:字符串函数11,strrchr

(二)MFC 专栏导航

上一篇:编程技能:字符串函数09,strncmp

回到目录

下一篇:编程技能:字符串函数11,strrchr

本节前言

之前的两节,我们讲解了字符串比较函数。

从本节开始,我们来学习,在字符串中查找某一个字符。

一.    strchr 基本介绍

想要使用 strchr 函数,如果是想要在 C 语言里面使用,那么,你需要有【#include <string.h>】一行。如果是想要在 C++ 里面使用,你需要有【#include <cstring>】一行。

下面,是 strchr 函数的原型声明。

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

我在这里所列的原型声明,它只是我从 Linux 0.12 内核中提取出来的一种声明而已。在 Visual Studio 里面,它的声明形式不是这样子的。但是呢,我在这里列举出来的声明,它是可用的。

此函数的功能是,在 s 所指向的字符串里面,从左到右来查找,查找 ASCII 码值与参数 c 相等的字符。如果查到了,则返回第一个匹配字符的指针。如果未查到,则返回 NULL 。

此函数不难。我们还是分别用 C 语言和 C++ 代码来演示它的使用方法。

二.    strchr 的 C 语言代码示例

代码如下。

#include <stdio.h>
#include <string.h>int main(void)
{int index;char* p;char str[] = "Program";char ch = 'a';p = strchr(str, ch);if (NULL == p){printf("未查找到指定字符。\n");}else{index = p - str;printf("原字符串指针:%p\n", str);printf("查到的字符的指针:%p\n", p);printf("查到的字符的索引:%d\n", index);}return 0;
}

上述代码,是可以直接在 Visual Studio 里面运行的。

大家若是还不会使用 Visual Studio,可以参考下述链接所示的两篇文章,来学习使用 Visual Studio 来建立解决方案和编译运行解决方案的方法。

Windows编程:使用 VS2010 编写 C语言程序-CSDN博客

Windows编程:用 VS2019 编写C语言程序-CSDN博客

运算结果如下:

图1

三.    strchr 的 C++ 代码示例

代码如下。

#include <iostream>
#include <cstring>
using namespace std;int main(void)
{int index;char* p;char str[] = "Program";char ch = 'a';p = strchr(str, ch);if (NULL == p){cout << "未查找到指定字符。\n";}else{index = p - str;cout << "原字符串指针:" << (void*)str << endl;cout << "查到的字符的指针:" << (void *)p << endl;cout << "查到的字符的索引:" << index << endl;}return 0;
}

以上代码,我们需要注意的是以下两行。

cout << "原字符串指针:" << (void*)str << endl;
cout << "查到的字符的指针:" << (void *)p << endl;

为啥要将两个 char* 类型的变量转换为 void* 呢?如果不转换的话,对于 char* 类型,C++ 输出的将会是这个字符指针所指示的字符串。而将其转换为 void* 类型以后,输出的,就是指针了。

我的感觉,C++ 虽说强大。但是呢,很多时候,我还是更喜欢用 C 语言。因为它简洁,好用。C++ 的话,功能强大,语法的细节也太多。细节多的话,用起来自然就会比较繁琐。还是 C 语言简洁啊。

不过,在这个时代里面,用 C++ 来开发软件,仍然会是一种推荐的主要编程语言。纯粹用 C 语言来写程序,我觉得,大神有资格这么去做。我还没有这个资格啊。

结束语

本节的内容,我觉得还好吧。

希望大家能够学好本节知识。

 专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程技能:字符串函数09,strncmp

回到目录

下一篇:编程技能:字符串函数11,strrchr

(二)MFC 专栏导航

上一篇:编程技能:字符串函数09,strncmp

回到目录

下一篇:编程技能:字符串函数11,strrchr

相关文章:

  • php 根据另一个数组中 create_time 的时间顺序,对原始数组进行排序。
  • 计算机操作系统(十二)详细讲解调计算机操作系统调度算法与多处理机调度
  • 使用 Elasticsearch 和 Red Hat OpenShift AI 提升工作流程效率
  • 什么是VR场景?VR与3D漫游到底有什么区别
  • CustomSVG,一键生成SVG,文字秒变矢量图(WIN/MAC)
  • 阿里开源 CosyVoice2:打造 TTS 文本转语音实战应用
  • Springboot通过SSE实现实时消息返回
  • [原创](计算机数学)(The Probability Lifesaver)(P14): 推导计算 In(1-u) 约等于 -u
  • 得力DE-620K针式打印机打印速度不能调节维修一例
  • C++ std::find() 函数全解析
  • Spyglass:CDC官方Hands-on Training(三)
  • 服务器数据迁移终极指南:网站、数据库、邮件无缝迁移策略与工具实战 (2025)
  • A10服务器使用vllm推理框架成功运行Qwen3大模型
  • MCP 服务与 Agent 协同架构的理论基石:从分布式智能到生态化协作
  • YOLOV11改进策略【最新注意力机制】CVPR2025局部区域注意力机制LRSA-增强局部区域特征之间的交互
  • Android屏幕适配利器:Kotlin动态尺寸计算工具类完整封装
  • 矩阵:线性代数在AI大模型中的核心支柱
  • Kotlin-数组,集合类以及序列
  • SQLMesh Typed Macros:让SQL宏更强大、更安全、更易维护
  • 探索C++对象模型:This指针与(构造、析构)成员函数的深度解析(中篇)
  • 网站及单位网站建设情况/百度一下图片识别
  • 专业做网站套餐/长沙营销型网站建设
  • 网站建立吸引人的策划活动/b2b电商平台
  • 建设南大街小学网站/推广排名seo
  • wordpress网站+搬家/安卓优化大师老版本下载
  • 罗湖专业做网站公司/东莞企业网站模板建站