整理了string.h中常用的几个函数,仅供参考!
1、strcpy()
2、memcpy()
3、strcat()
4、strchr()
5、strstr()
6、strcmp()
7、memcmp()
8、strset()
9、memset()

声明头文件
#include <string.h>

函数名:strcpy()

功能 :拷贝一个字符串到另一个
函数原型:char *strcpy(char *dest, const char *src)
参数介绍:
dest – 指向用于存储复制内容的目标数组
src – 要复制的字符串
返回值:返回一个指向最终的目标字符串 dest 的指针
程序例程:

#include <stdio.h>
#include <string.h>
int main()
{char string[10];char *str1 = "abcdefghi";strcpy(string, str1);printf("%s\n", string);return 0;
}
//运行结果:abcdefghi;

函数名:memcpy()

功能 :从存储区 str2 复制 n 个字节到存储区 str1
函数原型:void *memcpy(void str1, const void str2, size_t n)
参数介绍:
str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void
指针。
str2 – 指向要复制的数据源,类型强制转换为 void
指针。
n – 要被复制的字节数。
返回值:返返回一个指向目标存储区 str1 的指针
程序例程:

#include<stdio.h>
#include<string.h>int main(void)
{char src[] = "***";char dest[] = "kangkang";printf("使用 memcpy 前: %s\n", dest);memcpy(dest, src, strlen(src));printf("使用 memcpy 后: %s\n", dest);memcpy(dest+8, src, strlen(src));printf("改变地址后: %s\n", dest);return 0;
}
运行结果:
使用 memcpy 前: kangkang
使用 memcpy 后: ***gkang
改变地址后: ***gkang***

strcpy与memcpy的区别:
memcpy可以指定字节数进行复制,复制到存储的数组中只会覆盖复制字节长度的字符
strcpy可以进行字符串复制,但是是整体复制,会覆盖原有的字符串内容
函数名:

strcat()

功能 :
用来将两个字符串连接(拼接)起来
函数原型:
charstrcat(char s1, const char* s2)
把s2加到s1后面
参数介绍:
s1:目的字符串,数组包含了一个 C 字符串,且足够容纳追加后的字符串
s2:源字符串。指向要追加的字符串,该字符串不会覆盖目标字符串。
返回值:
返回一个指向最终的目标字符串 s1的指针
程序例程:

#include <string.h>
#include <stdio.h>int main(void)
{char s1[50];//定义一个空数组const char *s2= "A  ";   //定义想要追加的内容const char *s22 = "kang  ";//const保证字符串常量不被改变const char *s222= "love studay!";//不加const会警告strcpy(s1, s2);strcat(s1, s22);strcat(s1, s222);printf("%s\n", s1);return 0;
}
//运行结果:A  kang  love studay!

函数名:

strchr()

功能 :
检索字符串中第一次出现目标字符的位置
函数原型:
char *strchr(const char *str, char c)
参数介绍:
str – 要被检索的字符串
c – 在 str 中要搜索的字符
返回值:
返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL
程序例程:

#include <string.h>
#include <stdio.h>int main(void){char string[50];//保证数组足够大char *ptr, c = 'i';strcpy(string, "DeMaXiYa");//复制过去ptr = strchr(string, c);//检索printf("%p\n",string);//打印字符串初始地址printf("%p\n",ptr);//打印字符出现的地址if (ptr){printf("%c 在第%d的位置\n", c, ptr-string);printf("%c 后面的字符串%s\n", c, ptr+1);//把i的长度加上}elseprintf("The character was not found\n");return 0;}
/* 运行结果:
000000000062FE00
000000000062FE05  地址0————5
i 在第5的位置
i 后面的字符串Ya*/

函数名:

strstr()

功能 :
用于判断字符串str2是否是str1的子串
函数原型:
char *strstr(const char *str1, const char *str2)
参数介绍:
str1 – 要被检索的字符串
str2-- 在 str1 中要搜索的字符
返回值:
如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
程序例程:

int main()
{const char father[50] = "AiOuNiYa,AngYangBuMie";const char son[50] = "AngYangBuMie";char *p;p = strstr(father, son);printf("子字符串是: %s\n", p);printf("%p\n",&father[9]);printf("%p\n",p);return(0);
}
//打印结果:子字符串是:
子字符串是: AngYangBuMie
数组中地址:  000000000062FDA9
返回p 地址:  000000000062FDA9

函数名:

strcmp()

函数原型:
int strcmp(char *str1, char *str2)
功能 :
比较两个字符串,str1>str2,返回值 > 0;str1 = str2,返回0
str1 < str2,返回值<0;
参数介绍:
str1: 比较的字符串1
str2:比较的字符串2
返回值:
返回值为整形
程序例程:

#include <stdio.h>
#include <string.h>int main ()
{char str1[15];char str2[15];int ret; strcpy(str1, "qwerdf");strcpy(str2, "QWERDF");ret = strcmp(str1, str2);if(ret < 0)printf("str1 小于 str2");else if(ret > 0) printf("str1 大于 str2");else printf("str1 等于 str2");return 0;
}
//运行结果:str1 大于 str2

函数名:

memcmp()

函数原型:
int memcmp(const void *str1, const void *str2, size_t n)
功能 :
把存储区 str1 和存储区 str2 的前 n 个字节进行比较
参数介绍:
str1 – 指向内存块的指针。
str2 – 指向内存块的指针。
n – 要被比较的字节数。
返回值:
返回值为整形
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 = 0,则表示 str1 等于 str2。
程序例程:

 #include <stdio.h>
#include <string.h>int main ()
{char str1[15];char str2[15];int ret; memcpy(str1, "qwerdf",6);memcpy(str2, "QWERDF",6);ret = memcmp(str1, str2,5);if(ret < 0)printf("str1 小于 str2");else if(ret > 0) printf("str1 大于 str2");else printf("str1 等于 str2");return 0;
}
//运行结果:str1 大于 str2

函数名:

strset()

函数原型:
char *strset(char *str, char c)
功能 :
将一个字符串中的所有字符都设为指定字符
参数介绍:
str:字符串
c : 指定字符
返回值:
返回一个指向最终的目标字符串 str的指针
程序例程:

#include <stdio.h>
#include <string.h>int main(void)
{char str[10] = "6666666";char set = 'c';printf("Before strset(): %s\n", str);strset(str, set);printf("After strset():  %s\n", str);return 0;
}
//运行结果:
Before strset(): 6666666
After strset():  ccccccc

函数名:

memset()

函数原型:
void *memset(void *str, int c, size_t n)
功能 :
复制字符C到参数 str 所指向的字符串的前 n 个字符
参数介绍:
str – 指向要填充的内存块。
c – 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无符号字符形式。
n – 要被设置为该值的字符数。
返回值:
该值返回一个指向存储区 str 的指针
程序例程:

#include<stdio.h>
#include <string.h>
int main()
{char buf[1024] = {0};//定义一个数组int i=0;for(i=0;i<=10;i++){sprintf(buf,"当前计数值为:%d!", i);//把i传进前面的字符串,i值一直变化,形成字符动态的显示(计数)printf("%s\n",buf);}const char *s1 = "Akang ";const char *s2 = "love lining";memset(buf,0,1024);//把buf全部初始化为0;sprintf(buf,"%s%s",s1,s2);//拼接,把s1s2格式化输出,存到buf中printf("%s\n",buf);char str[50];strcpy(str,"STM32");memset(str,'+',3);//把+++复制到str前三个字符;我理解为把str前三个字符设置为+++printf("%s\n",str);}
//sprintf的返回值是字符数组中字符的个数,即字符串的长度,不用在调用strlen(str)求字符串的长度。
//运行结果:
当前计数值为:0!
当前计数值为:1!
当前计数值为:2!
当前计数值为:3!
当前计数值为:4!
当前计数值为:5!
当前计数值为:6!
当前计数值为:7!
当前计数值为:8!
当前计数值为:9!
当前计数值为:10!
Akang love lining
+++32

生命不息,战斗不止!

加油!

C语言<string.h>常用函数整理相关推荐

  1. C语言string.h常用函数总结

    void *memcpy(void *dest, const void *src, size_t n); 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. ...

  2. C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)

    内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...

  3. C语言string.h文件函数汇总详解

    注:下列例程执行结果由VC++6.0环境编译运行测试,确保验证无误. 目录 一.常用函数 1.strcpy 2.strncpy 3.strstr 4.strcmp 5.strncmp 6.strchr ...

  4. C语言 string.h 中函数的实现

            最近是校招很热的季节,实验室里讨论最多的也就是算法,面试和笔试的必备知识储备.昨天想起 C 语言中 string.h 中的函数在操作字符串时很方便,所以,就想起写写那些函数.     ...

  5. c语言stdlib h常用函数,c语言中,头文件stdlib.h主要包含什么函数?

    stdlib.h里面定义了五种类型.一些宏和通用工具函数. 类型例如size_t.wchar_t.div_t.ldiv_t和lldiv_t: 宏例如EXIT_FAILURE.EXIT_SUCCESS. ...

  6. C语言文件读写常用函数总结

    C语言文件读写常用函数总结 有点小头疼这几天复习,可是总是有些小可爱问有关C语言文件方面的内容,在此写篇博文一劳永逸. 目录 C语言文件读写常用函数总结 fopen函数 fclose函数 fseek函 ...

  7. mysql数据库 常用函数_《MySQL数据库》常用函数整理

    原标题:<MySQL数据库>常用函数整理 以下内容,是我整理出来的比较常用的字符串函数,数值函数,日期函数. 第一类:字符串函数 1.conv(n,from_base,to_base):对 ...

  8. pandas 常用函数整理

    pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...

  9. C++ string类常用函数

    C++ string类常用函数 http://xiaocao000.spaces.live.com/blog/cns!F826A925CF33491A!117.entry string类的构造函数: ...

  10. DL4J的矩阵处理模块ND4J的常用函数整理

    ND4J矩阵变换的常用函数整理 由本人阅读nd4j源码整理,nd4j是dl4j为了矩阵运算整出来的一套工具.对应python里的numpy,但是并没有numpy那么普及,不过至少使用dl4j搭建神经网 ...

最新文章

  1. 前后端分离的接口规范
  2. Windows 8 动手实验系列教程 实验8:Windows应用商店API
  3. 没想到吧,让你一秒变身纸片人的爆火AI特效,背后还有这么多知识点
  4. Python学习笔记:第三方模块2
  5. DHCP中继处理办法
  6. ant压缩和解压缩工具类
  7. 第十五节20181209
  8. 迅雷如何添加html文件夹,迅雷7上我的收藏怎么找
  9. DNSPod-免费智能DNS解析服务商
  10. 挂载命令 mount
  11. Ubuntu 12.10 禁用来宾账户和远程登录
  12. 基于gibbsLDA的文本分类
  13. 含泪讲述拿到美团offer的心酸历程......
  14. 监控网络行为——公务员上班玩游戏
  15. uniapp返回上一级选择性刷新数据,不重新加载页面
  16. python树莓派串口通信实例_使用树莓派和Python实现ModbusTCP通讯
  17. 高配云计算机平台,云电脑真的来了!小破本也能秒变高配
  18. Excel应用技巧之一——常用快捷键
  19. matlab画直齿轮,有哪位大神有matlab 直齿轮传动优化的代码
  20. JAVA高级工程师笔试面试题

热门文章

  1. c# 控制台485串口连接
  2. pico的学习之路(三)——CTRT5000一路寻迹传感器|黑白传感器|红外传感器(树莓派pico实现)
  3. 双十一阿里云优惠活动整理
  4. 电脑重启只剩下c盘怎么办_重装系统后电脑只剩下C盘了怎么办?
  5. PW4054原厂锂电池充电管理芯片常规小封装5PIN充电IC产品
  6. html图片从透明到显示,css 文字半透明显示在图片上
  7. H3c网络互联学习笔记——网络设备的基本操作
  8. 新版二开彩虹易支付整站源码批发 全开源全解密去后门 亲测一点问题没有
  9. 堆排序算法原理及C++实现(详细注释)
  10. 微信图灵机器人自动回复和微信加淘宝淘客推广