C++字符串内部查找函数

C++ 一个函数调用其他.cpp文件中的函数 使用VC或VS创建C++项目的时候,会自动产生许多文件夹,其中有一个文件夹->源文件: 在该文件下可以自定义许多.cpp文件,但是需要注意的是这里面的各个文件只能有一个文件中含有main()函数, 而且各个文件中不能使用相同的函数名进行定义; 那么要那么多文件放在项目中有什么用呢? 当然这里C++是提供一个文件调用其他文件中函数的功能的, 这就可以让我们自定义一个只包含main()... 阅读详情

char* strchr( const char* str, int chr );
在str中查找第一次出现的chr,没找到则返回0

char* strrchr( const char* str, int chr );
在str中查找最后一次出现的chr,没找到则返回0

char* strstr( const char* str, const char* substr );
在str中查找第一次出现的substr,没找到则返回0

size_t strspn( const char* str, const char* chrset );
在str中查找 只包含在chrset中的字符 的最开始的最长字符数目
strspn( "cabbage", "abc" ) == 5;
strspn( "cabbage", "dc" ) == 1;
strspn( "cabbage", "d" ) == 0;
strspn( str, "abceg" ) == 7;

char* strspnp( const char* str, const char* chrset );
和strspn功能一样,只是返回指针
const char* str = "cabbage"
strspnp( str, "abc" ) == str+5;
strspnp( str, "dc" ) == str+1;
strspnp( str, "d" ) == str+0;
strspnp( str, "abceg" ) == 0; // 和strspn不一样

size_t strcspn( const char* str, const char* chrset );
在str中查找第一次出现在chrset中的字符位置,没找到则返回str结尾的'/0'的位置
strcspn( "xyzbxz", "abc" ) = 3
strcspn( "xyzbxz", "xyz" ) = 0
strcspn( "xyzbxz", "no match" ) = 6
strcspn( "xyzbxz", "" ) = 6
strcspn( "", "abc" ) = 0
strcspn( "", "" ) = 0

char* strpbrk( const char* str, const char* chrset );
和strcspn功能一样,只是返回指针
strpbrk( "xyzbxz", "abc" ) = "xyzbxz"+3
strpbrk( "xyzbxz", "xyz" ) = "xyzbxz"+0
strpbrk( "xyzbxz", "no match" ) = 0 // 和strcspn不一样
strpbrk( "xyzbxz", "" ) = 0 // 和strcspn不一样
strpbrk( "", "abc" ) = 0 // 和strcspn不一样
strpbrk( "", "" ) = 0 // 和strcspn不一样

------------------------

假如想将 "123@456@789" 分割成 "123" "456" "789" 当用 strchr
假如想将 "123@#456@#789" 分割成 "123" "456" "789" 当用 strstr
假如想将 "123@456#789@#0" 分割成 "123" "456" "789" "" "0" 当用 strcspn
假如想将 "123@456#789@#0" 分割成 "123" "456" "789" "0" 当用 strcspn/strspn

代码如下:(未曾测试过)
#include <stdio.h>
#include <string.h>
#include <assert.h>

void split001( const char* str, const char chr )
{
    const char* p1 = str;
    for( const char* p2; (p2=strchr(p1,chr))!=0; p1=p2+1 )
    {
        printf( "/"%.*s/"/n", p2-p1, p1 );
    }
    printf( "/"%s/"/n", p1 );
}
void split002( const char* str, const char* substr )
{
    assert( *substr );
    const size_t substrlen = strlen(substr);
    const char* p1 = str;
    for( const char* p2; (p2=strstr(p1,substr))!=0; p1=p2+substrlen )
    {
        printf( "/"%.*s/"/n", p2-p1, p1 );
    }
    printf( "/"%s/"/n", p1 );
}
void split003( const char* str, const char* substr )
{
    assert( *substr );
    const char* p1 = str;
    for( const char* p2; p2=p1+strcspn(p1,substr), *p2; p1=p2+1 )
    {
        printf( "/"%.*s/"/n", p2-p1, p1 );
    }
    printf( "/"%s/"/n", p1 );
}
void split004( const char* str, const char* substr )
{
    assert( *substr );
    const char* p1 = str;
    for( const char* p2; p2=p1+strcspn(p1,substr), *p2; p1=p2+strspn(p2,substr) )
    {
        printf( "/"%.*s/"/n", p2-p1, p1 );
    }
    printf( "/"%s/"/n", p1 );
}

int main( void )
{
    split001( "123@456@789", '@' );
    printf( "---/n" );
    split002( "123@#456@#789", "@#" );
    printf( "---/n" );
    split003( "123@456#789@#0", "@#" );
    printf( "---/n" );
    split004( "123@456#789@#0", "@#" );
    printf( "---/n" );

    return 0;
}

指定位置插入字符串(c++insert函数、find函数使用) insert函数、find函数进行指定位置插入字符串问题。 阅读详情

相关推荐

c++之string字符串常用函数

c++ string常用字符串函数

qq_52048052的博客 3285

Cadence HDL原理图库创建避坑指南:从Excel导入引脚到解决隐藏引脚报错

本文详细介绍了Cadence HDL原理图库创建的高效方法,重点讲解如何从Excel导入引脚数据并解决隐藏引脚报错问题。通过Excel数据预处理、符号创建优化技巧和封装映射解决方案,帮助工程师快速完成FPGA等复杂器件的原理图库设计,显著提升工作效率和准确性。

weixin_30333885的博客 223

【C++】4-1.22 搜索字符串

【C++】4-1.22 搜索字符串1.搜索字符串2.示例 1.搜索字符串 find() 函数可以在一个字符串中搜索一个子串或者一个字符 以下str1、str2表示字符串,char表示单个字符; 语法1: str1.find(str2) //返回str1中出现str2的第一个索引位置 语法2: str1.find(str2, index) //从str1的index索引号位置开始查找str2出现的第一个索引位置 语法3: str1.find(char) //返回str1中出现单个字符char的第一个索引位

jn10010537的博客 1045

c/c++:char*定义常量字符串,strcmp()函数,strcpy()函数,寻找指定字符,字符串去空格

c/c++:char*定义常量字符串,strcmp()函数,strcpy()函数,寻找指定字符,字符串去空格

weixin_46838716的博客 3607

TNS-12516及ORA-12516错误解决

在客户端进行sqlplus连接报错如下: ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 在/home/oracle/product/10.2.0/db_1/network/log/listener.log中查看到错误如下: TNS-12516: TNS:listener could not find available handler with matchin

KEL 2万+

实战指南:R语言多组倾向评分逆概率加权(IPTW)建模与结果解读

本文详细介绍了如何使用R语言实现多组倾向评分逆概率加权(IPTW)建模,包括数据预处理、倾向评分估计、权重计算及结果解读。通过实战案例演示,帮助研究者掌握这一统计方法,有效平衡多组混杂因素,模拟随机对照试验效果,适用于医学、社会科学等领域的数据分析。

weixin_42528534的博客 395

C++中字符串查找

今天工作清闲,翻看《C++标准程序库》一书,

1093

Mathcad在LLC谐振变换器设计中的公式推导实战

本文通过Mathcad软件,详细演示了LLC谐振变换器设计的核心公式推导实战。文章阐述了如何利用Mathcad作为“会思考的草稿纸”,从定义基本参数、应用基波近似法(FHA)模型,到逐步推导电压增益公式及确定工作边界频率(fmin, fmax),并展示了如何通过动态参数扫描进行优化设计,帮助电源工程师高效、直观地完成理论计算,为后续仿真与实现奠定坚实基础。

q1w3e5r7t9y的博客 296

C/C++字符串查找函数

C/C++ string库(string.h)提供了几个字符串查找函数,如下: memchr 在指定内存里定位给定字符 strchr 在指定字符串里定位给定字符 strcspn 返回在字符串str1里找到字符串str2里的任意一个字符之

7万+

第2章: MMU Notifier 全局通知器的核心原理⭐

摘要 MMU Notifier机制是Linux内核中用于处理内存地址空间变化通知的关键框架。其设计遵循解耦与标准化、最小侵入性、高性能和安全性四大原则,采用三层架构实现上层应用、核心层与内存管理层的协作。框架提供两种通知模型:全局订阅的mmu_notifier和区间订阅的mmu_interval_notifier,分别适用于KVM虚拟化和GPU共享虚拟内存等不同场景。核心数据结构mmu_notifier_ops定义了设备驱动需要实现的回调函数集合,包括进程退出处理、页面老化管理、地址范围失效通知等功能。

图形/计算GPU的驱动与虚拟化技术分享园地 4560

Anomalib库安装以及使用

Anomalib是一个专注于异常检测的深度学习库。它的目标是收集最新的异常检测算法,并提供用于在公共和私有数据集上进行基准测试的工具。该库提供了一系列已实现的异常检测算法,这些算法在最近的文献中有所描述。此外,Anomalib还提供了一套工具,方便开发人员开发和实现自定义模型。该库特别注重基于图像的异常检测,旨在识别数据集中的异常图像或图像中的异常像素区域。通过使用Anomalib,用户可以快速构建和评估各种异常检测算法,以满足其特定需求。

mingo_敏 5198

string数据结构内部排序,查找和输入输出处理——C++新手上机疑难点总结④

string数据结构内部排序,查找和输入输出处理——C++新手上机疑难点总结④1. string内部排序:2. string内查找特定字符或字符串:3. string的输入输出: 1. string内部排序: 如果有一个字符串的内容为"weferserseg",需要我们按照字典序对其进行排序,最简单的方法是直接使用sort函数: #include <iostream> #include...

weixin_43868032的博客 1520

高项备考论文:规划绩效域

高项备考论文:规划绩效域

liuxu324的博客 1128

C 和 C++ 字符串函数操作

1)字符串操作 strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen(p) 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串strchr(p,...

weixin_30564785的博客 93

AWR2243的等效相位中心与虚拟通道

在俯仰维方向上,不重合的虚拟通道有8个,排序为1:4,9:12。每个虚拟阵元之间的间隔为lambda/2。实际y轴方向虚拟阵列只跨越了8*lambda/2的距离。等效相位中心与虚拟通道类似,只是每个相位中心之间间隔为lambda/4,实际y轴方向等效相位中心只跨越了8*lambda/4=7.59mm的距离

qq_50974341的博客 1981

ThingsBoard3.9.1规则引擎方式发送钉钉通知消息

thingsboard3.9.1/4.0规则链方式发送钉钉通知消息。

hssjf的专栏 531

【C++】掌握string类操作:高效处理字符串

摘要:本文介绍了C++中string类的常用修改操作和函数。主要包括:1. push_back、append、operator+=等尾部追加操作;2. c_str()返回C风格字符串;3. find()和rfind()查找子串位置;4. substr()截取子串;5. string::npos表示查找失败的特殊值。文章还比较了VS和g++下string的不同实现结构:VS采用小字符串优化(16字节内嵌存储),g++使用写时拷贝技术。此外,还介绍了非成员函数如operator+、getline()等的用法,强

2402_83411382的博客 1151

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C++ 字符串的截取

按照字符串截取 /** * @brief 按照指定的字符串截取字符串 * @param str 需要截取的字符串 * @param pattern 按照该字符串截取 * @return 截取好的字符串vector */ std::vector<std::string> splitStr(std::string str, std::string pattern) { std::string::size_type pos; std::vector<std.

休息一下接着来的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C++ string类成员函数介绍:

目录🤔string本质 🔍string和char *区别: 🔍特点:🤔string的各种成员函数: 🔍1.string 构造函数 🔍2.string 赋值函数 🔍3.string 字符串拼接 🔍4.string 查找和替换字符串 🔍5.string 字符存取 🔍6.string插入与删除 🔍7.string子串

fckbb的博客 769

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C++ string容器零基础入门之从创建字符串到基本操作

内心OS:其实我用在写完这篇博客的时间,比我真正去学习string容器的时间是要多出两到三倍的。有人可能会问:值吗?我觉得很值,非常值。在学习的过程中我其实全程1.5倍速左右,虽然也有在从头到尾地跟着视频写代码,但却总感不扎实。可写博客的过程却极大地减少了我的这种不踏实感。在此过程中,我不仅将string容器中的各个知识点进行了总结、把各个知识点的视频全部重新一倍速地看了一遍,而且还将碎片化的知识用网状的思考、构建树状的结构并最终以线性的语句来组成这篇呈现在你面前的博客时,这个过程于我而言是受益匪浅的。

hhy_xyx的博客 867

C++ 中字符串查找、字符串截取、字符串替换

1、字符串查找 s.find(s1) //查找s中第一次出现s1的位置,并返回(包括0) s.rfind(s1) //查找s中最后次出现s1的位置,并返回(包括0) s.find_first_of(s1) //查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0) s.find_last_of(s1) //查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0) s.fin_first_not_of(s1)

AI人工智能的海洋 2万+

c++ string类字符串查找

1) find() 函数 find() 函数用于在 string 字符串中查找子字符串出现的位置,它其中的两种原型为: size_t find (const string& str, size_t pos = 0) const; size_t find (const char* s, size_t pos = 0) const; 第一个参数为待查找的子字符串,它可以是 string 字符串,也可以是C风格的字符串。第二个参数为开始查找的位置(下标);如果不指明,则从第0个字符开始查找。 请看下面的

qq_45797026的博客 3万+

C++字符串查找函数

在 C 语言和C++语言中,可用于实现字符串查找功能的函数非常多。在STL中,字符串的查找功能可以实现多种功能,比如说: 搜索单个字符、搜索子串; 实现前向搜索、后向搜索; 分别实现搜索第一个和最后一个满足条件的字符(或子串); 若查找 find() 函数和其他函数没有搜索到期望的字符(或子串),则返回 npos;若搜索成功,则返回搜索到的第 1 个字符或子串的位置。其中,npos...

积累点滴,保持自我 3026

【C++】STL 容器 - string 字符串操作 ⑤ ( string 字符串查找 | find 函数查找字符串 | rfind 函数查找字符串 )

一、string 字符查找 - find 函数查找字符串 1、string 类 find 函数原型说明 2、代码示例 - 字符串查找 3、代码示例 - 统计字符串子串 二、string 字符查找 - rfind 函数查找字符串 1、string 类 rfind 函数原型说明 2、代码示例 - rfind 字符串查找

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7306

C++字符串常用操作函数(查找、插入、截取、删除等)

目录1. 字符串查找函数1.1 find2. 字符串插入函数2.1 append2.2 insert 1. 字符串查找函数 1.1 find 函数原型为:unsigned int find(const basic_string &str) const; 作用:查找并返回str在本串中第一次出现的位置,位置从0开始 例子如下: #include <iostream> using namespace std; int main() { string str = "i love

Bulut0907 5182

C++中有关字符字符串的函数总结

replace(left,length,str2) 替换掉str1中从left开始的length长度的字符串为str2,多出str2的长度则删除str1中对应多出的字符。strpbrk返回一个指针,指向str2中任意一个字符第一次在str1中出现的位置,不存在则返回NULL。strrchr是查找一个字符在字符串中首次的位置并返回它的指针。strcspn是返回字符串str1中连续n个不含字符串str2中字符的字符数。strspn是返回str1中第一个不是str2中存在的字符的下标。

m0_63667664的博客 2396
上一篇: CArray,CMap,CList 速度比较
下一篇: strcat函数越界的问题
sendfeng
博客等级 码龄20年 5粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值