C语言之字符串处理函数

字符串处理

       与字符串有关的内置函数在头文件<string.h>

1.库函数strlen()

       size_t  strlen(char const* string)
       //测试字符串长度的函数
       函数的值为字符串的实际长度,注意:不包括'\0'在内
    
       size_t strlen(char const *string)
        {
           int length = 0;
           for(length = 0;*string++!= '\0')
                  length+=1;
        }

注意:size_t 为无符号整形,其头文件在stddef.h中
       
#include<stdio.h>
int main()
{
  // char str[] = "string1"
   char str[100] = "string";
   unsigned int n;
   n = strlen(str);
   printf("n = %d\n",n);
   printf("sizeof(str) = %lu\n",sizeof("string1"));
   printf("sizeof(str) = %lu\n",sizeof(str1));
   
   return 0;
}

2.strcpy()

      char  *strcpy(char *dst,char const *src)
      复制时,dst必须足够大,复制时连同'\0'一起复制

3.strcmp()

      int strcmp(char const *s1,char const *s2)    
      (1)相等,返回0
      (2)s1>s2 返回正整数
      (3)s1<s2返回负整数

 4.strcat()

   char *strcat(char *dst,char const *src)
   将源字符串连接到目的字符串的后面,目的字符串要足够大,连接时将字符串1末尾的'\0'取消,在新字符串后保留'\0'

以上四个函数为不受限的字符串库函数
而不受限的字符串库函数:
            strncpy()    strncat()    strncmp()

5. strncpy()

       char *strncpy(char *dst,char const *src,size_t len)
  将src前面的len个字符复制到字符数组dst中,len不应大于字符数组dst中原有的字符,不包括'\0',如果len>strlen(src),则用'\0'填充到n长度,若len<strlen(src),则只有n个字符被复制到字符数组中,注意:结果不会以‘\0'字节结尾,因此需要在最后人工添加'\0'

6. strncat()

  char *strncat(char *dst,char const *src,size_t len);
  从src中最多复制len个字符到目标数组后面,strncat总是在结果字符串后面添加一个'\0'

7.strncmp()

   int strncmp(char const *s1,char const *s2,size_t len)
 最多比较len各字符

8.strchr()和strrchr()

  char *strchr(char cosnt *Str,int ch)
  strchr()在字符串str中查找字符ch第一次出现的位置,找到后返回返回一个指向该位置的指针
  char *strrchr(char const *str,int ch)
   strchr()在字符串str中查找字符ch最后一次出现的位置,找到后返回返回一个指向该位置的指针

9.strpbrk()

   char *strpbrk(char const *str,char const *group)
   查找第一个匹配group中任何一个字符,函数返回指向str中第1个匹配group中任何一个字符的字符位置的指针,若为找到匹配,则返回null指针
char string[20] = "hello there honey";
char a[] = "aiou";
char *ans;
ans = strpbrk(string,a);
*(ans + 1) = '\0';
printf("%s\n",string);

10.字符处理库函数



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值