string.h函数:

1.strlen 数出字符串存在多少字符;

2.strcmp 比较两个字符串,若相等返回0不相等返回1

3.strcpy(char *restrict dst,const char *restrict src);

//以上为strcpy函数的原型声明

作用:将dst字符串用src字符串覆盖,并且返回dst

restrict:表明dst不可与src不重叠

操作如下:

char dst=(char)malloc(strlen(src)*sizeof(char)+1);

strcpy(dst,src);

{(补充:malloc-->需要调用#include<strlib.h>,并且需要用指针变量来储存malloc返回的值)

malloc是向计算机要一块空间,返回的类型为void

举例:如果需要一个N个int的空间,我们需要使用malloc动态内存分配

操作如下:

include<stdio.h>

include<stdlib.h>

int main(void){

int N,p;

scanf("%d",&N);

p=(int
)malloc(N*sizeof(int));-->是向计算机要了一块N个int

的空间

free(p);-->释放空间内存

}

}

4.strcat(char*restrict s1,const char *restrict s2);

//以上是strcat函数的原型声明

作用:将s2拷贝到s1的后面,接成一个长字符串 然后返回s1(s1必须有足够的空间)

5.strchr(const chars,int c); //返回一个指针

strrchr(const char
s,int c);

//以上为函数的原型声明

作用:strchr是从左边开始查找第一个为c的字符

strrchr是从右边开始查找第一个为c的字符

返回NULL表示没有找到

//使用小技巧:

(1).寻找第二个重复的字符:

char s[]="hello";

char *p=strchr(s,'l');//此时输出p会得到llo。

p=strchr(p+1,'l'); //此时p指向了llo让他+1指向lo,再从lo里找到l。

(2).将字符串的一部分提出来,放在另外一处去

char s[]="hello";

char *p=strchr(s,'l');

char t=(char)malloc(strlen(p)+1);

strcpy(t,p);

printf("%s",t);

free(t);

//上面操作是将字符串s的“llo”提取出来放在了指针t的位置;

(3).得到一串字符串的前几个字符

char s[]="hello";

char p=strchr(s,'l');

char c=
p;//此时*p指向了数组s的第一个l的位置

*p='\0';//让第一个l的位置变成了\0 则s数组就变成了he\0lo\0;

char t=(char)malloc(strlen(s)+1);

strcpy(t,s);//用新的指针来储存改变后的字符串s

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

p=c;//还原p所指向的数组s的位置;

free(t);

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

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

//以上为函数的原型声明

作用为:第一个为在字符串中寻找字符串,第二个是在字符串中寻找字符串的过程中忽略大小写。

补充:对于strcpy和strcat有更安全的版本

char *strncpy(char *restrict dst,const char *restrict src,size_t n); n-->表示可以替换的最大字符数量

char *strncat(char *restrict s1,const char *restrict s2,size_t n); n-->表示可以后缀的最大字符数量

其次对于 int strncmp(const chars1,const chars2,size_t n);

n-->表示依次判断字符串s1前n个字符是否为a,b,c...,n

最新文章

  1. [CORS:跨域资源共享] W3C的CORS Specification
  2. libqrencode生成二维码
  3. OpenCV 3.0函数库索引
  4. linux的提示信息--/etc/motd和/etc/issue
  5. Android 学习笔记之Volley(七)实现Json数据加载和解析...
  6. Powershell连接Office 365各组件的方法
  7. JavaWeb项目开发案例精粹-第4章博客网站系统-006View层
  8. Android开发之三种动画
  9. ocp 1Z0-047 131-276题解析
  10. 【C++基础】 多态 虚函数
  11. 基于注解的SpringMVC整合JPA
  12. 【转】文件中有10G个整数,乱序排列,要求找出中位数
  13. SGU 260.Puzzle (异或高斯消元)
  14. PHP cURL 应用
  15. STL assign 和swap
  16. (5编译使用最新opencv)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  17. 阿狸V任务页面爬取数据解析
  18. java项目中Excel文件预览
  19. OI中一些常见实用的套路【更新中】
  20. 导出Office365中的组及成员

热门文章

  1. Ubuntu16.04+Tensorflow+CUDA9.0+cuDNN7.0 环境简明搭建指南
  2. springmvc 源码分析(三) -- 自定义处理器映射器和自定义处理器适配器,以及自定义参数解析器 和错误跳转自定页面
  3. Python-输入输出-input ouput
  4. LeetCode刷题总结-数学篇
  5. Java知识系统回顾整理01基础03变量02基本变量类型
  6. 利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)
  7. js日志输出还是只会console.log么,那你就out了
  8. 为Android(和其他移动平台)安装MoSync
  9. Python 3.9 新特性速览
  10. Solr单机安装