常见C语言字符串函数

本文详细介绍了C语言中常用的字符串函数,包括strlen计算字符串长度、strcpy和strcat进行字符串拷贝和嫁接、strcmp和strncmp进行字符及字符串比较、strncpy和strncat有长度限制的复制和嫁接等,以及字符串查找、错误信息报告和内存操作函数如memcpy和memset。
摘要由CSDN通过智能技术生成

大家元宵节好啊,我是情谊,今天我们来讨论一下我们常见的C语言字符串函数,我们先来看一个大纲:

1求字符串长度的函数

     strlen

2长度不受限制的字符串函数

     strcpy                字符拷贝

     strcat                 字符嫁接

     strcmp               字符比较

3长度受限制的字符串函数

    strncpy              有限制的字符拷贝

    strncat               有限制的字符嫁接

    strncmp             有限制的字符串比较

4字符串查找

    strstr                   字符串查找

    strtok                  字符串断点

5错误信息报告

    strerror     

6内存操作函数

    memcpy              内存拷贝

    memset               内存初始化

以上便是我们今天讨论的内容大纲啦,话不多说,直接开始!

1        srelen           size_t strlen ( const char * str );

作用:计算字符串的长度(\0之前的字符的长度)

例子:

char  arr[20] = { "zhangsan"};

int ret = strlen(arr);       //这样ret的值就是8

2       strcpy            char * strcpy ( char * destination, const char * source );

作用:将source中的字符串拷贝到destination这个字符串里面

例子:

char name[20] = { 0 };

strcpy( * name ," zhangssan");      //这样name数组里面的字符串就是zhangsan

3       strcat             char * strcat ( char * destination, const char * source )

作用:将source内的字符串追加到destination这个字符串的后面

例子:

char  name[ 20 ] = {" zhangsan"};

strcat( * name ,"lisi");      //这样name数组里面的字符串就是”zhangsanlisi“

4      strcmp      int strcmp ( const char * str1, const char * str2 );

作用:比较两个字符的ASCALL码值(一个一个字符的比较),str1大于str2,则返回一个正数,反之,返回一个负数

例子:

char  s1 = {"abcd"};

char  s2 = {"abcq"};

strcmp( * s1 , * s2);      // 这里一个一个的比较,像s1中的a和s2中的a比较

5      strncpy         char * strncpy ( char * destination, const char * source, size_t num );

作用:将source中的字符串自行选择个数拷贝进入destination这个字符串里面

例子:

char   name [ 20 ] = { 0 }

char  stu [100] = {"zhangsanlisi"};

strncpy( * name , * stu , 8};    //这样name这个数组里面的字符就是“zhangsan".

6      strncat           char * strncat ( char * destination, const char * source, size_t num );

作用:将source中的字符串自行选择嫁接个数进入destination这个字符串里面

例子:

char  name [ ] = {"zhangsan"};

char  stu[ ] = { "lisiwangwu"};

strncat( * name , * stu , 4);      //这样name这个数组里面的字符就是”zhangsanlisi“

7      strncmp           int strncmp ( const char * str1, const char * str2, size_t num )

作用:比较两个字符串中有限个数的字符

例子:

char  s1[ ] = { "abcdef"};

char  s2[ ] = { "abcfde"};

strncmp(  * s1 , *  s2 ,3};     //这里比较的是两个字符串前三个字符的大小,是相同的

8       strstr       

const char * strstr ( const char * str1, const char * str2 );
      char * strstr (       char * str1, const char * str2 );

作用:在一个字符串中查找另一个字符串,如果存在,就将从需查找的字符串开始,全部返回

例子:

char  s1 = { ”abcdefg“};

char  s2 = { ”def“};

strstr(*s1 , *s2);   //这里返回字符串”defg“

9      strtok       char * strtok ( char * str, const char * delimiters );

作用:delimiters这个字符串中定义了分隔符,在str中进行断点

例子:

char  s1 [ ] = { "zhangsan@lisi.cpp"};

char  s2 [ ] = { "@, . "};

strtok(*s1 , * s2);    //这里以@和  .  为分隔符将s1分隔成三部分

10      strerror     char * strerror ( int errnum );

作用:将错误原因返回出来(编译器中将错误方式形成一些数字,当出现哪种类型的错误,就会返回哪个数字

例子:

printf(”%s\n",strerror(1));

printf(”%s\n",strerror(2));

printf(”%s\n",strerror(3));

printf(”%s\n",strerror(4));     //这个函数一般不会像这样单独使用,我们这样是为了直观学习

10      memcpy        void * memcpy ( void * destination, const void * source, size_t num );

作用:内存拷贝,相当于strcpy的进阶版,strcpy只能拷贝字符串,但是memcpy可以拷贝多种类型的数据,只是要求两个数据是同一种类型

例子:

int  arr[ ] = { 1,2,3,4,5,6,7};

int  arr1 [ 10 ] = { 0 };

memcpy( * arr1 , *arr , 16);     //注意,16表示的是字节数,一个整型占4个字节

11      memset         void * memset ( void * ptr, int value, size_t num );

作用:修改内存中的储存数值

例子:

char arr [ ] = { "hello  world"};

memset( arr , 'x' ,5);    //则将arr中前5个元素替换成x

好啦,以上便是今天介绍的全部内容啦,如果内容出现一些错误的地方还请多多担待啦

如果看到这里的铁铁能否点一个赞呢?谢谢大家啦!今后我将继续努力为大家献上一点小知识啦。拜拜,下周见。

      

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值