您的位置:首页 > 编程语言 > C语言/C++

C语言之字符串处理函数

2017-04-07 08:31 253 查看

字符串处理

       与字符串有关的内置函数在头文件<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.字符处理库函数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: