常用字符串处理函数

ops/2025/1/12 11:57:51/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="markdown_views prism-dracula">cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

class="toc">

常用字符串处理函数

    • strcspn
      • 函数原型
      • 参数说明
      • 返回值
      • 使用示例
      • 注意事项
    • strpbrk
      • 函数原型
      • 参数说明
      • 返回值
      • 使用示例
    • strcasecmp
      • 函数原型
      • 参数说明
      • 返回值
      • 使用示例
      • 注意事项

cspn_2">strcspn

<code>strcspncode> 是一个 C 和 C++ 标准库函数࿰c;用于计算一个字符串中不包含任何指定字符的最长前缀的长度。换句话说࿰c;它返回的是字符串中第一个出现的任何指定字符的位置(索引)࿰c;如果没有找到࿰c;则返回字符串的长度。

函数原型

<code class="prism language-c">class="token class-name">size_t class="token function">strcspnclass="token punctuation">(class="token keyword">const class="token keyword">char class="token operator">*s1class="token punctuation">, class="token keyword">const class="token keyword">char class="token operator">*s2class="token punctuation">)class="token punctuation">;
code>

参数说明

  • <code>s1code>:要检查的字符串。
  • <code>s2code>:包含要查找的字符的字符串。

返回值

  • 返回 <code>s1code> 中不包含 <code>s2code> 中任何字符的最长前缀的长度。

使用示例

以下是一个使用 <code>strcspncode> 的示例程序:

<code class="prism language-cpp">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><iostream>
class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><cstring>class="token keyword">int class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">const class="token keyword">charclass="token operator">* str1 class="token operator">= class="token string">"Hello, World!"class="token punctuation">;class="token keyword">const class="token keyword">charclass="token operator">* str2 class="token operator">= class="token string">" ,!"class="token punctuation">;class="token comment">// 计算 str1 中不包含 str2 中任何字符的最长前缀长度size_t length class="token operator">= class="token function">strcspnclass="token punctuation">(str1class="token punctuation">, str2class="token punctuation">)class="token punctuation">;stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"The length of the initial segment of str1 that does not contain any characters from str2 is: " class="token operator"><< length class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token keyword">return class="token number">0class="token punctuation">;
class="token punctuation">}
code>

注意事项

  • <code>strcspncode> 函数的返回值是 <code>size_tcode> 类型࿰c;表示长度。
  • 如果 <code>s2code> 是空字符串࿰c;<code>strcspncode> 将返回 <code>0code>࿰c;因为不包含任何字符的前缀是空字符串。
  • 如果 <code>s1code> 是空字符串࿰c;<code>strcspncode> 将返回 <code>0code>࿰c;因为没有字符可供比较。
  • 在使用时要包含头文件 <code><cstring>code>(C++)或 <code><string.h>code>(C)。

<code>strpbrkcode> 是一个 C 和 C++ 标准库函数࿰c;用于查找一个字符串中第一个出现的任何字符在另一个字符串中的位置。换句话说࿰c;它返回指向第一个匹配字符的指针࿰c;如果没有匹配字符࿰c;则返回 <code>nullptrcode>(在 C++ 中)或 <code>NULLcode>(在 C 中)。

strpbrk

函数原型

<code class="prism language-c">class="token keyword">charclass="token operator">* class="token function">strpbrkclass="token punctuation">(class="token keyword">const class="token keyword">char class="token operator">*s1class="token punctuation">, class="token keyword">const class="token keyword">char class="token operator">*s2class="token punctuation">)class="token punctuation">;
code>

参数说明

  • <code>s1code>:要检查的字符串。
  • <code>s2code>:包含要查找的字符的字符串。

返回值

  • 返回指向 <code>s1code> 中第一个出现的 <code>s2code> 中的字符的指针。
  • 如果没有找到任何匹配字符࿰c;则返回 <code>nullptrcode>(在 C++ 中)或 <code>NULLcode>(在 C 中)。

使用示例

以下是一个使用 <code>strpbrkcode> 的示例程序:

<code class="prism language-cpp">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><iostream>
class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><cstring>class="token keyword">int class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">const class="token keyword">charclass="token operator">* str1 class="token operator">= class="token string">"Hello, World!"class="token punctuation">;class="token keyword">const class="token keyword">charclass="token operator">* str2 class="token operator">= class="token string">"aeiou"class="token punctuation">; class="token comment">// 要查找的字符集class="token comment">// 查找 str1 中第一个出现的 str2 中的字符class="token keyword">charclass="token operator">* result class="token operator">= class="token function">strpbrkclass="token punctuation">(str1class="token punctuation">, str2class="token punctuation">)class="token punctuation">; class="token comment">//字符e索引为1class="token keyword">if class="token punctuation">(resultclass="token punctuation">) class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"The first vowel in str1 is: " class="token operator"><< class="token operator">*result class="token operator"><<class="token string">" at position: " class="token operator"><< class="token punctuation">(result class="token operator">- str1class="token punctuation">) class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">; class="token comment">// 1class="token punctuation">} class="token keyword">else class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"No vowels found in str1." class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token punctuation">}class="token keyword">return class="token number">0class="token punctuation">;
class="token punctuation">}
code>

<code>strcasecmpcode> 是一个 C 和 C++ 标准库函数࿰c;用于比较两个字符串࿰c;而不区分大小写。它的功能与 <code>strcmpcode> 类似࿰c;但在比较时会忽略字符的大小写差异。

casecmp_95">strcasecmp

函数原型

<code class="prism language-c">class="token keyword">int class="token function">strcasecmpclass="token punctuation">(class="token keyword">const class="token keyword">char class="token operator">*s1class="token punctuation">, class="token keyword">const class="token keyword">char class="token operator">*s2class="token punctuation">)class="token punctuation">;
code>

参数说明

  • <code>s1code>:第一个字符串。
  • <code>s2code>:第二个字符串。

返回值

  • 如果两个字符串相等(忽略大小写)࿰c;则返回 0。
  • 如果 <code>s1code> 小于 <code>s2code>࿰c;则返回一个小于 0 的值。
  • 如果 <code>s1code> 大于 <code>s2code>࿰c;则返回一个大于 0 的值。

使用示例

以下是一个使用 <code>strcasecmpcode> 的示例程序:

<code class="prism language-cpp">class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><iostream>
class="token macro property">class="token directive-hash">#class="token directive keyword">include class="token string"><cstring>class="token keyword">int class="token function">mainclass="token punctuation">(class="token punctuation">) class="token punctuation">{class="token keyword">const class="token keyword">charclass="token operator">* str1 class="token operator">= class="token string">"Hello, World!"class="token punctuation">;class="token keyword">const class="token keyword">charclass="token operator">* str2 class="token operator">= class="token string">"hello, world!"class="token punctuation">;class="token keyword">const class="token keyword">charclass="token operator">* str3 class="token operator">= class="token string">"Goodbye, World!"class="token punctuation">;class="token comment">// 比较字符串class="token keyword">int result1 class="token operator">= class="token function">strcasecmpclass="token punctuation">(str1class="token punctuation">, str2class="token punctuation">)class="token punctuation">; class="token comment">//str1 and str2 相等class="token keyword">int result2 class="token operator">= class="token function">strcasecmpclass="token punctuation">(str1class="token punctuation">, str3class="token punctuation">)class="token punctuation">; class="token comment">//"str1 and str3 不相等class="token keyword">if class="token punctuation">(result1 class="token operator">== class="token number">0class="token punctuation">) class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"str1 and str2 are equal (case-insensitive)." class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token punctuation">} class="token keyword">else class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"str1 and str2 are not equal (case-insensitive)." class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token punctuation">}class="token keyword">if class="token punctuation">(result2 class="token operator">== class="token number">0class="token punctuation">) class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"str1 and str3 are equal (case-insensitive)." class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token punctuation">} class="token keyword">else class="token punctuation">{stdclass="token double-colon punctuation">::cout class="token operator"><< class="token string">"str1 and str3 are not equal (case-insensitive)." class="token operator"><< stdclass="token double-colon punctuation">::endlclass="token punctuation">;class="token punctuation">}class="token keyword">return class="token number">0class="token punctuation">;
class="token punctuation">}
code>

注意事项

  • <code>strcasecmpcode> 是 POSIX 标准的一部分࿰c;因此在某些平台(如 Windows)上可能不被支持。在这些平台上࿰c;您可能需要使用 <code>_stricmpcode> 函数。
  • <code>strcasecmpcode> 的实现可能会受到当前区域设置的影响࿰c;因此在某些情况下࿰c;比较的结果可能会有所不同。

http://www.ppmy.cn/ops/149117.html

相关文章

[读书日志]从零开始学习Chisel 第五篇:Scala面向对象编程——类继承(敏捷硬件开发语言Chisel与数字系统设计)

3.3类继承 3.3.1Scala中的类继承 为了节省代码量和反映实际各种类之间的联系&#xff0c;通常采取两种策略&#xff0c;包含和继承。包含是说明一个类中包含另一个类的对象&#xff0c;但两者之间没有必然联系。继承是从一个宽泛的类派生出更具体的类的过程&#xff0c; 被继…

Django管理后台实现ECS服务管理:权限控制与重启功能

1. 引言 在现代Web应用开发中,管理ECS(Elastic Container Service)服务是一项常见且重要的运维任务。本文将详细介绍如何在Django管理后台中创建一个自定义的ECS服务管理界面,实现精细的权限控制和服务重启功能。我们将特别关注如何根据用户角色和服务特性来限制操作权限,…

西门子1200 ModbusTCP通信(服务器)

一、创建项目并设置PLC参数 二、添加数据块和参数 相关参数设置如下&#xff1a; 参数说明InterfaceId网口硬件标识符&#xff0c;对于本体网口为 64&#xff0c;即16#40。ID连接 ID&#xff0c;取值范围 1~4095Connection Type连接类型。TCP 连接默认为&#xff1a;16#0BAct…

单例模式5种写法

单例模式是设计模式中最简单的一种&#xff0c;其目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。以下是单例模式的五种常见写法&#xff1a; ### 一、懒汉式&#xff08;线程不安全&#xff09; java public class Singleton { private static Singlet…

[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)

3.4特质 3.4.1什么是特质 特质使用trait开头&#xff0c;它与单例对象很像&#xff0c;两者都不能有输入参数&#xff0c;但单例对象是具体的&#xff0c;特质是抽象的。两者都不能用new实例化&#xff0c;类&#xff0c;单例对象&#xff0c;特质三者内部都可以包含字段和方…

14:00面试,15:00就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到2月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

(超详细)Maven安装配置、以及在IDEA中创建Maven项目

一、登录官网下载Maven Download Apache Maven – Maven 根据自己所需要进行下载&#xff0c;如果是windows系统就下载zip文件&#xff0c;Linux系统就下载gz文件 我下载的版本是3.6.3&#xff0c;下面是网盘链接&#xff1a; 百度网盘链接: https://pan.baidu.com/s/1Ytoprb…

算法面试1

简述yolov1的网络架构 YOLOv1网络结构包括24层卷积层用来提取图像的特征&#xff0c;2层全连接层回归得到7730&#xff08;141420&#xff09;的张量。   网络结构大概如下&#xff1a;输入的是4484483通道的图像&#xff0c;就是RGB图像&#xff0c;然后用64个卷积核大小是…