c语言字符串匹配函数index,C语言(函数)学习之index、rindex

函数定义:char *index(const char *s, int c);

头文件:    #include strings.h

函数说明:index()用来找出参数s 字符串中第一个出现的参数c 地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。

返回值:如果找到指定的字符则返回该字符所在地址,否则返回NULL

程序举例:

#include

#include

int main()

{

char *s = "abcdef123456abcdef";

char *p = NULL;

p = index(s, 'b');

printf("%s\n", p);

return 0;

}

执行结果:

dzlab:~/test/test# ./a.out

bcdef123456abcdef

相关函数:char *rindex(const char *s, int c);

函数说明:rindex()用来找出参数s 字符串中最后一个出现的参数c 地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。

程序举例:

#include

#include

int main()

{

char *s = "abcdef123456abcdef";

char *p = NULL;

p = rindex(s, 'b');

printf("%s\n", p);

return 0;

}

执行结果:

dzlab:~/test/test# ./a.out

bcdef

扩展部分:

在查man手册的时候,发现头文件是strings.h,不是string.h,是不是手册错了,于是乎百度了一番,找到了具体描述结果:

strings.h头文件是从BSD系UNIX系统继承而来,里面定义了一些字符串函数,如bzero等。这些函数曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在POSIX.1-2008标准里已经没有这些函数了,如下:

int bcmp(const void *, const void *, size_t); /* 用memcmp替代 */

void bcopy(const void *, void *, size_t); /* 用memcpy, memmove替代 */

void bzero(void *, size_t); /* 用memset替代 */

int ffs(int); /* string.h 中有 */

char *index(const char *, int); /* 用strchr替代 */

char *rindex(const char *, int); /* 用strrchr替代 */

int strcasecmp(const char *, const char *); /* string.h 中有 */

int strncasecmp(const char *, const char *, size_t); /* string.h 中有 */

这两个头文件都在linux的/usr/include目录下面,后者比前者多了一个s,一般使用以string.h(没有s)的为主,那strings.h(有s)什么时候使用呢?打开这个头文件,可以看见区别如下:

/* We don't need and should not read this file if was already

read. The one exception being that if __USE_BSD isn't defined, then

these aren't defined in string.h, so we need to define them here. */

所以,一般使用前者就可以了。

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

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

相关文章

JZ-C-35

剑指offer第三十五题&#xff1a;第一个只出现一次的字符 1 //2 // Name : JZ-C-35.cpp3 // Author : Laughing_Lz4 // Version :5 // Copyright : All Right Reserved6 // Description : 第一个只出现一次的字符7 //8 9 #include <iostream> 10 #incl…

过滤器,绑定事件,动画

一、基本过滤器 语法描述返回值:first选取第一个元素单个元素:last选取最后一个元素单个元素:not(selector)选取去除所有与给定选择器匹配的元素集合元素:even选取索引是偶数的所有元素(index 从0开始)集合元素:odd选取索引是奇数的所有元素(index 从0开始)单个元素:eq(index)选…

一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...

不知怎么的&#xff0c;最近不少关注我的读者都开始私信我怎么学好python&#xff1f;零基础转行是不是合适&#xff0c;还有希望吗&#xff1f;今年30了&#xff0c;还能不能转IT&#xff1f;今天这篇文章&#xff0c;我花了一周的时间搜索、整理、调研、筛选&#xff0c;最后…

python中bool函数的用法_python3实战python函数每日一讲 - bool([x])

bool([x])英文说明&#xff1a;Convert a value to a Boolean, using the standard truth testing procedure. If x is false or omitted, this returns False; otherwise it returns True. bool is also a class, which is a subclass of int. Class bool cannot be subclasse…

c语言程序 强制关机程序,怎样用C语言编写关机程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include "windows.h"#pragma comment(lib,"user32.lib")#pragma comment(lib,"advapi32.lib")int main(){HANDLE hToken;LUID luid;BOOL bRaisedFALSE;TOKEN…

python操作mysql数据库的常用方法使用详解

python操作mysql数据库1、环境准备&#xff1a; Linux安装mysql&#xff1a; apt-get install mysql-server安装python-mysql模块&#xff1a;apt-get install python-mysqldb Windows下载安装mysqlpython操作mysql模块&#xff1a;MySQL-python-1.2.3.win32-py2.7.exe 或 MySQ…

python剑指offer面试题_剑指offer面试题Q10 斐波那契数列 python解法

Q10.斐波那契数列题目描述写一个函数&#xff0c;输入n&#xff0c;求斐波那契数列的第n项。解题思路思路一递归递归很简单但是并不能ACpython实现代码class Solution:def Fibonacci(self, n):# write code hereif n < 0:return 0if n 1:return 1return self.Fibonacci(n-1…

c语言稀疏矩阵的存储,C语言:数据结构-稀疏矩阵的压缩存储

https://m.toutiaocdn.com/group/6712258385510662667/?appnews_article&timestamp1562855219&req_id201907112226580100230300187166DEA&group_id6712258385510662667(1)稀疏矩阵的特点在一个mn的矩阵中&#xff0c;设矩阵中有i个元素不为零&#xff0c;并令△i/…

计算机C语言课交作业怎么交,第一份c语言作业

2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样&#xff1f;•答案&#xff1a; 软件工程专业是个年轻的专业&#xff0c;紧跟这个信息化的新时代。我学习它是因为感兴趣&#xff0c;经过一周的学习&#xff0c;我了解了一些 该专业课程主要是c语言程序设计和计算机导…

python风控工具_python-风控模型分析01

数据导入与查看# -*- coding: utf-8 -*-# %%time# from pyhive import prestoimport pandas as pdimport numpy as npimport warningsimport osdatapd.read_csv(*/全域风险.csv)data.head(2)# label pd.DataFrame(list(result),columnscolumns_names)# label.to_csv(/data/ljk/…

查看某个文件是否正在被修改

1、首先执行命令&#xff0c;写到1.log文件下面&#xff1a; find -name *.rdb|xargs stat| grep -i Modify | awk -F. {print $1} | awk {print $2$3}| awk -F- {print $1$2$3} | awk -F: {print $1$2$3} > 1.log 2、再等待1分钟&#xff0c;执行命令&#xff0c;写到2.log…

c语言位运算+乘法,关于c语言中的位运算。。。

标签&#xff1a;c位运算是一种针对二进制数的一种运算位运算 共有六种都有其对应得操作符号& (and) 位于| (or) 位或~ (not) 取反^ (xor) 异或>> (shr) 右移一位<< (shl) 左移一位运算说明&a…

python模型保存save_浅谈keras保存模型中的save()和save_weights()区别

今天做了一个关于keras保存模型的实验&#xff0c;希望有助于大家了解keras保存模型的区别。我们知道keras的模型一般保存为后缀名为h5的文件&#xff0c;比如final_model.h5。同样是h5文件用save()和save_weight()保存效果是不一样的。我们用宇宙最通用的数据集MNIST来做这个实…

技术淘宝

? ? ? ? 精度前端学习 —— 前端开发100天&#xff08;置顶&#xff09; http://alloyteam.github.io/CodeGuide/https://github.com/AlloyTeam/CodeGuide cmd控制台的小技巧&#xff1a;可以直接将文件夹/文件丢进去&#xff0c;这样就会打印出该路径了。 舒服的字体家族…

vue 导出_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入

问题&#xff1a;vuex在vue-cli中的应用第一步&#xff1a;npm下载vuex资源包&#xff1a;npm install vuex --save第二步&#xff1a;在 src/main.js 中引入import Vue from vue import Vuex from vuexVue.use(Vuex)import store from ./vuex/store第三步&#xff1a;在 src 下…

android界面设计字体大小,Andoird用户界面设计上手指南:设置字体大小

教程详解技术应用: AndroidOS / Android SDK难易程度: 简单预计完成时间: 15分钟【51CTO译文】在本文中&#xff0c;我们将介绍一些简单的处理方式&#xff0c;帮助开发人员轻松编写出能够应对各类设备型号的应用程序文本方案&#xff0c;同时为用户提供自定义文字尺寸功能。别…

回溯算法解决八皇后_4皇后问题和使用回溯算法的解决方案

回溯算法解决八皇后4-皇后问题 (4 - Queens problem) In 4- queens problem, we have 4 queens to be placed on a 4*4 chessboard, satisfying the constraint that no two queens should be in the same row, same column, or in same diagonal. 在4个皇后问题中 &#xff0c…

MAVEN 私有仓库库迁移

一、下载 Nexus:cd /usr/local/srcwget http://download.sonatype.com/nexus/oss/nexus-xxxx-bundle.tar.gz二、安装配置授权 cd /var/app/sudo cp nexus-xxxx-bundle.tar.gz /var/app/cd /var/app/sudo tar xvzf nexus-xxxx-bundle.tar.gzln -s nexus-xxxx nexuscp nexus/bin/…

写python笔记本推荐_写个python程序帮你清理垃圾

起步知识概要【临时文件(*.tmp)】【临时文件(*._mp)】【日志文件(*.log)】【临时帮助文件(*.gid)】【磁盘检查文件(*.chk)】【临时备份文件(*.old)】【Excel备份文件(*.xlk)】【临时备份文件(*.bak)】【COOKIE】 cookies\*.*【文件使用记录】 recent\*.*【IE临时文件】 Tempora…

0623TP框架联系

先用框架查询 namespace Home\Controller;use Home\Controller\FuLeiController; class WccController extends FuLeiController {//查看项目的方法function xiangmu(){$xiangmuD("xiangmu");$zhi$xiangmu->select();$this->assign("zhi",$zhi);$thi…