嵌入式c语言字符串处理函数学习记录

1、获取字符串长度函数

头文件:#include<string.h>    函数定义:size_t strlen(const char *s);

函数功能:测字符指针s指向的字符串中字符的个数,不包括‘\0’

返回值:字符串中字符的个数

2、字符串拷贝函数

头文件:#include<string.h>    函数定义:char *strcpy(char *dest,const char *src);

函数的功能:拷贝src指向的字符串到dest指针指向的内存中,'\0'也会拷贝。

函数的返回值:目的内存地址

注意:在使用此函数的时候,必须保证dest指向的内存空间足够大,否则会出现污染。

char *strncpy(char *dest,const char *src,size_t n);

函数的功能:将src指向的字符串前n个字节,拷贝到dest指向的内存中。

返回值:目的内存的地址

注意:1、strncpy不拷贝'\0'。2、如果n大于src指向的字符串中的字符个数,则在dest后面填充n-strlen(src)个'\0'

3、字符串追加函数

头文件:#include<string.h>    函数定义:char *strcat(char *dest,char *src);

函数功能:strcat函数追加src字符串到dest指向的字符串后面。追加的时候会追加'\0'

注意:保证dest指向的内存空间足够大。

函数定义:char *strncat(char *dest,char *src,size_t n);

函数功能:strcat函数追加src字符串前n个字符到dest指向的字符串后面。追加的时候会追加'\0'

注意:如果n大于src的字符个数,则只将src字符串追加到dest指向的字符串后面。追加的时候会追加'\0'。

4、字符串比较函数

头文件:#include<string.h>    函数定义:int strcmp(const char *s1,const char *s2);

函数功能:比较s1和s2指向的字符串的大小,比较的方法:逐个字符比较ascll码值,一旦比较出大小就返回。

返回值:如果s1指向的字符串大于s2指向的字符串,返回1

                如果s1指向的字符串小于s2指向的字符串,返回-1

                如果相等则返回0

int strncmp(const char *s1,const char *s2,size_t n);

函数功能:比较s1和s2指向的字符串中的前n个字符

5、字符查找函数

头文件:#include<string.h>    函数定义:char *strchr(const char *s,int c);

函数功能:在字符指针s所指向的字符串中,找ascll码为c的字符

注意:是首次匹配,如果说s指向的字符串中有多个ASCLL码为c的字符,则找的是第一个字符

返回值:找到了返回找到的字符的地址

                找不到返回NULL

char *strrchr(const char *s, int c);

函数功能:末次匹配。在s指向的字符串中,找最后一次出现的ASCLL为c的字符

返回值:末次匹配的字符地址

7、字符串匹配函数

头文件:#include<string.h>    函数定义:char *strstr(const char *haystack.const char *needle);

函数功能:在haystack指向的字符串中查找needle指向的字符串,也是首次匹配。

返回值:找到了:找到的字符串的首地址

                没找到:返回NULL

8、字符串转换数值

头文件:#include<stdlib.h>    函数定义:int atoi(const char *nptr);

函数的功能:将nptr指向的字符串转换为整数并返回。

注意:要是纯数字型的字符串

long atol(const char *nptr);    double atof(const char *nptr);

9、字符串切割函数

头文件:#include<string.h>    函数定义:char *strtok(char *str,const char *delim);

函数的功能:字符串切割,按照delim指向的字符串中的字符,切割str指向的字符串。就是在str指向的字符中发现了delim字符串中的字符,就将其变成'\0',调用一次strtok只切割一次,切割一次之后,再去切割的时候strtok的第一个参数传NULL,意思是接着上次切割的位置继续切。

注意:如果str字符串中出现了连续的几个delim中的字符,则只将第一个字符变成'\0'

10、格式化字符串操作函数

int sprintf(char *buf,const char *format,...);//输出到buf指定的内存中。

int sscanf(const char *buf,const char *format,...);//从buf指定的内存区域中读入信息

11、const

11.1、修饰全局变量时,全局变量只能使用不能修改。如果修改直接报错。

11.2、修饰普通局部变量时,不能通过变量名修改值,可以通过变量地址进行修改。

11.3、修饰指针变量,如果const修饰指针变量的类型,无法通过指针变量修改地址里面的值。

                如果const修饰的是指针变量,无法修改指针变量保存的地址。        

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值