有的时候,我们为了一些特殊的需要,不能使用C语言提供的字符串处理函数,而需要我们自己动手来写,下面是两个比较常用的例子:

(1) strstr

原型声明:char *strstr (const char *s1, char *s2);

改函数从字符串s2中查找子字符串s1, 如果找到了返回子找到位置的子字符串的指针,否则返回NULL.

(2)strindex

原型声明:int strindex (const char *s1, char *s2);

返回字符串s2在字符串s1中的位置,这个位置是从0开始的,如果没有找到,则返回-1

下面是实现以及使用的例子:

/*

File Name: str.c

Function: to find a sub string in a string.

*/

#includechar *strstr (const char *s1, const char *s2);

int strindex (const char *s1, const char *s2);

int main()

{

char *s1 = "Hello, Welcome to linux world.";

char *s2 = "linux";

char *res = NULL;

printf("string: %s\n", s1);

printf("sub string: %s\n", s2);

printf("now we will find sub string \"%s\" in \"%s\"\n", s2, s1);

if ( (res = strstr(s1, s2)) == NULL )

{

printf("Can't find the string %s in %s\n", s2, s1);

}

else

{

printf("Find string: %s\n", res);

printf("The position [zero-based] is %d\n", strindex(s1, s2));

}

return 0;

}

char *strstr (const char *s1, const char *s2)

{

unsigned int i = 0;

if ( *s1 == 0 ) // 如果字符串s1为空

{

if ( *s2 ) // 如果字符串s2不为空

return (char*)NULL; // 则返回NULL

return (char*)s1; // 如果s2也为空,则返回s1

}

while ( *s1 ) // 串s1没有结束

{

i = 0;

while ( 1 )

{

if ( s2[i] == 0 )

{

return (char*)s1;

}

if ( s2[i] != s1[i] )

break;

i++;

}

s1++;

}

return (char*)NULL;

}

int strindex(const char *s1, const char *s2)

{

int nPos = -1;

char *res = strstr(s1, s2);

if ( res )

nPos = res - s1 ;

return nPos;

}

阅读(3429) | 评论(0) | 转发(1) |

strstr c语言字符串,C字符串处理strstr, strindex相关推荐

  1. C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()

    C语言函数: 字符串函数及模拟实现strtok().strstr().strerror() strstr()函数: 作用:字符串查找.在一串字符串中,查找另一串字符串是否存在. 形参: str2在st ...

  2. C语言strstr()函数(在主字符串里查找子字符串,返回第一次找到的子字符串以及后面的字符串)

    需包含头文件:C 标准库 - <string.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 char *strstr(const char *haystack, con ...

  3. 代码随想录Day09:28. 实现 strStr()、459.重复的子字符串、字符串总结 、双指针回顾

    目录 Day09:28. 实现 strStr().459.重复的子字符串.字符串总结 .双指针回顾 28. 实现 strStr() (一刷只看了思想) 459.重复的子字符串 (本题一刷跳过了) 字符 ...

  4. strstr php文档,php字符串函数学习之strstr()

    /* 定义和用法 strstr() 函数搜索一个字符串在另一个字符串中的第一次出现. 该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false. 语法 string str ...

  5. php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数

    PHP 字符串获取 用于从字符串中获取指定字符串. 相关函数如下: substr():从字符串中获取其中的一部分 strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结 ...

  6. C语言再学习 -- 字符串和字符串函数

    最近身体很不给力,很乏累!白天没精神,晚上睡不着,心情还很烦躁.看书都有点看不下去的样子,到了C语言最难掌握的部分了,数组.指针.字符串.硬着头皮看书总结吧. 一.字符串 1.字符串介绍 字符串是以空 ...

  7. c语言从文件查找字符串,C语言文件中字符串的查找与替换?

    C语言文件中字符串的查找与替换? #include #include #include #include int Count=0; int findNum(char *str) { int i=0,t ...

  8. c语言中字符怎么表示6,6、C语言中的字符串

    一.C语言中的字符串 字符串是一种重要的数据类型,但是C语言并没有显示的字符串数据类型,不像java有String ,OBC有NSString等等.所以C语言中的字符串一般以字符串常量的形式出现或者存 ...

  9. C语言中lwr是谁的缩写,C语言中关于字符串的操作(转)

    浅析C语言中关于字符串的操作(转) 前言:如果您是学C/C 的,对于字符串的操作不是很了解,请您耐心读完.作为我的朋友,我很乐意和您分享我最近的知识积累.毕 竟,网上很少有这么全,这么细的介绍,更少有 ...

最新文章

  1. iOS 开发之时间选择器
  2. 数据结构之堆Heap
  3. Mongo Windows 基本使用入门
  4. 音视频技术开发周刊 90期
  5. Eclipse系列的隐藏宝藏-2019年版
  6. UVA1262Password(第K字典序)
  7. mysql 集群与主从_Mysql集群和主从
  8. 话里话外:流程管理评价的两大要素
  9. 中移4G模块-ML302-OpenCpu开发-HTTP
  10. 推荐14款基于javascript的数据可视化工具
  11. python3线程池爬虫_python3多线程爬虫中如何变量?
  12. window启动过程讲解--PPT截图[张银奎]
  13. ASP.NET MVC——XX点餐管理系统后台项目实训总结书
  14. 机器学习原理与实践(Python版)
  15. html5加载更多,HTML5[7]: 实现网页版的加载更多
  16. 前端开发知识点整理(1)—网络—秋招/春招/实习/工作
  17. 脑波扫描器行业研究及十四五规划分析报告
  18. PsTools - Windows远程操作工具
  19. 身在互联网,该如何提高自身的核心竞争力?
  20. 想象与变革——下一个千年的科学

热门文章

  1. HDOJ---1273 漫步森林[图论]
  2. 在各路由器进行OSPF的基本配置
  3. decimal在存储过程和C#中的应用
  4. 《OpenGL编程指南(原书第9版)》——导读
  5. JS作用域理解(声明提升)
  6. dedecms教程:搜索页显示条数更改
  7. I.MX6 Android busybox 从哪里生成的
  8. css3 画半圆和1/4圆
  9. php两个数组去掉相同的,php如何删除两个数组中相同的数据
  10. tensorflow 语音识别_调研报告|在线语音识别改进方法之序列区分性训练