描述:
C 库函数void*memchr(constvoid*str,int c,size_t n)在参数str指向的字符串的前n个字节中搜索字符c(无符号字符)的第一次出现。
参数
str -- 这是指向执行搜索的内存块的指针。
c -- 这是要作为 int 传递的值,但该函数使用此值的无符号字符转换执行逐字节搜索。
n -- 这是要分析的字节数。
返回值
此函数返回一个指向匹配字节的指针,如果字符没有出现在给定的内存区域中,则返回 NULL。
//例子#include<stdio.h>#include<string.h>intmain(){constchar str[]="http://www.hjq0x17c18.com";constchar ch ='.';char*ret;
ret =memchr(str, ch,strlen(str));printf("String after |%c| is - |%s|\n", ch, ret);return(0);}
#include<stdio.h>#include<string.h>intmain(){char str1[15];char str2[15];int ret;memcpy(str1,"abcdef",6);memcpy(str2,"ABCDEF",6);
ret =memcmp(str1, str2,5);if(ret >0){printf("str2 is less than str1");}elseif(ret <0){printf("str1 is less than str2");}else{printf("str1 is equal to str2");}return(0);}
03 memcpy
void*memcpy(void*dest,constvoid* src,size_t n)
描述
C 库函数void*memcpy(void*dest,constvoid*src,size_t n)将n 个字符从内存区src复制到内存区dest。
参数
dest -- 这是指向要复制内容的目标数组的指针,类型转换为 void* 类型的指针。
src -- 这是指向要复制的数据源的指针,类型转换为 void* 类型的指针。
n -- 这是要复制的字节数。
返回值
此函数返回指向目标的指针,即 str1。
#include<stdio.h>#include<string.h>intmain(){constchar src[50]="http://www.tutorialspoint.com";char dest[50];strcpy(dest,"Heloooo!!");printf("Before memcpy dest = %s\n", dest);memcpy(dest, src,strlen(src)+1);printf("After memcpy dest = %s\n", dest);return(0);}
描述
C 库函数void*memset(void*str,int c,size_t n)将字符c(无符号字符)复制到参数str指向的字符串的前n 个字符。
参数
str -- 这是指向要填充的内存块的指针。
c -- 这是要设置的值。该值作为 int 传递,但该函数使用该值的 unsignedchar 转换来填充内存块。
n -- 这是要设置为该值的字节数。
返回值
此函数返回指向内存区域 str 的指针。
#include<stdio.h>#include<string.h>intmain(){char str[50];strcpy(str,"This is string.h library function");puts(str);memset(str,'$',7);puts(str);return(0);}
06 strcat
char*strcat(char*dest,constchar*src)
描述
C 库函数char*strcat(char*dest,constchar*src)将src指向的字符串附加到dest指向的字符串的末尾。
参数
dest -- 这是指向目标数组的指针,它应该包含一个 C 字符串,并且应该足够大以包含连接的结果字符串。
src -- 这是要附加的字符串。这不应与目的地重叠。
返回值
此函数返回指向结果字符串 dest 的指针。
#include<stdio.h>#include<string.h>intmain(){char src[50], dest[50];strcpy(src,"This is source");strcpy(dest,"This is destination");strcat(dest, src);printf("Final destination string : |%s|", dest);return(0);}
描述
C 库函数char*strncat(char*dest,constchar*src,size_t n)将src指向的字符串附加到dest指向的字符串的末尾,最多n 个字符长。
参数
dest -- 这是指向目标数组的指针,它应该包含一个 C 字符串,并且应该足够大以包含连接的结果字符串,其中包括额外的空字符。
src -- 这是要附加的字符串。
n -- 这是要附加的最大字符数。
返回值
此函数返回指向结果字符串 dest 的指针。
#include<stdio.h>#include<string.h>intmain(){char src[50], dest[50];strcpy(src,"This is source");strcpy(dest,"This is destination");strncat(dest, src,15);printf("Final destination string : |%s|", dest);return(0);}
08 strchr
char*strchr(constchar*str,int c)
描述
C 库函数char*strchr(constchar*str,int c)在参数str指向的字符串中搜索字符c (无符号字符)的第一次出现。
参数
str -- 这是要扫描的 C 字符串。
c -- 这是要在 str 中搜索的字符。
返回值
这将返回一个指向字符 c 在字符串 str 中第一次出现的指针,如果未找到该字符,则返回 NULL。
#include<stdio.h>#include<string.h>intmain(){constchar str[]="http://www.tutorialspoint.com";constchar ch ='.';char*ret;
ret =strchr(str, ch);printf("String after |%c| is - |%s|\n", ch, ret);return(0);}
#include<stdio.h>#include<string.h>intmain(){char str1[15];char str2[15];int ret;strcpy(str1,"abcdef");strcpy(str2,"ABCDEF");
ret =strcmp(str1, str2);if(ret <0){printf("str1 is less than str2");}elseif(ret >0){printf("str2 is less than str1");}else{printf("str1 is equal to str2");}return(0);}
#include<stdio.h>#include<string.h>intmain(){char str1[15];char str2[15];int ret;strcpy(str1,"abcdef");strcpy(str2,"ABCDEF");
ret =strncmp(str1, str2,4);if(ret <0){printf("str1 is less than str2");}elseif(ret >0){printf("str2 is less than str1");}else{printf("str1 is equal to str2");}return(0);}
#include<stdio.h>#include<string.h>intmain(){char str1[15];char str2[15];int ret;strcpy(str1,"abc");strcpy(str2,"ABC");
ret =strcoll(str1, str2);if(ret >0){printf("str1 is less than str2");}elseif(ret <0){printf("str2 is less than str1");}else{printf("str1 is equal to str2");}return(0);}
13 strcpy
char*strcpy(char*dest,constchar*src)
描述
C 库函数char*strcpy(char*dest,constchar*src)将src指向的字符串复制到dest。
参数
dest -- 这是指向要复制内容的目标数组的指针。
src -- 这是要复制的字符串。
返回值
这将返回指向目标字符串 dest 的指针。
描述
C 库函数size_tstrcspn(constchar*str1,constchar*str2)计算str1的初始段的长度并扫描str1以查找属于str2的任何字符的第一次出现,返回第一次出现之前读取的str1的字符数。搜索包括终止空字符。因此,如果在str1中找不到str2的任何字符,该函数将返回str1的长度。
参数
str1 -- 这是要扫描的主要 C 字符串。
str2 -- 这是包含要在 str1 中匹配的字符列表的字符串。
返回值
此函数返回字符串 str1 的初始段中不在字符串 str2 中的字符数。
#include<stdio.h>#include<string.h>intmain(){int len;constchar str1[]="ABCDEF4960910";constchar str2[]="013";
len =strcspn(str1, str2);printf("First matched character is at %d\n", len +1);return(0);}
描述
C 库函数size_tstrlen(constchar*str)计算字符串str的长度,但不包括终止空字符。
参数
str -- 这是要找到其长度的字符串。
返回值
此函数返回字符串的长度。
#include<stdio.h>#include<string.h>intmain(){char str[50];int len;strcpy(str,"This is tutorialspoint.com");
len =strlen(str);printf("Length of |%s| is |%d|\n", str, len);return(0);}
17 strpbrk
char*strpbrk(constchar*str1,constchar*str2)
描述
C 库函数char*strpbrk(constchar*str1,constchar*str2)查找字符串str1中与str2中指定的任何字符匹配的第一个字符。这不包括终止空字符。
参数
str1 -- 这是要扫描的 C 字符串。
str2 -- 这是包含要匹配的字符的 C 字符串。
返回值
此函数返回指向 str1 中与 str2 中的字符之一匹配的字符的指针,如果未找到此类字符,则返回 NULL。
#include<stdio.h>#include<string.h>intmain(){constchar str1[]="abcde2fghi3jk4l";constchar str2[]="34";char*ret;
ret =strpbrk(str1, str2);if(ret){printf("First matching character: %c\n",*ret);}else{printf("Character not found");}return(0);}
18 strrchr
char*strrchr(constchar*str,int c)
描述
C 库函数char*strrchr(constchar*str,int c)在参数str指向的字符串中搜索字符c (无符号字符)的最后一次出现。
参数
str -- 这是 C 字符串。
c -- 这是要定位的字符。它作为其 int 提升传递,但在内部转换回 char。
返回值
该函数返回一个指向字符在 str 中最后一次出现的指针。如果未找到该值,则该函数返回一个空指针。
#include<stdio.h>#include<string.h>intmain(){int len;constchar str[]="http://www.tutorialspoint.com";constchar ch ='.';char*ret;
ret =strrchr(str, ch);printf("String after |%c| is - |%s|\n", ch, ret);return(0);}
19 strspn
size_tstrspn(constchar*str1,constchar*str2)
描述
C 库函数size_tstrspn(constchar*str1,constchar*str2)计算str1的初始段的长度,该段完全由str2中的字符组成。
参数
str1 -- 这是要扫描的主要 C 字符串。
str2 -- 这是包含要在 str1 中匹配的字符列表的字符串。
返回值
此函数返回 str1 的初始段中仅包含 str2 中的字符的字符数。
#include<stdio.h>#include<string.h>intmain(){int len;constchar str1[]="ABCDEFG019874";constchar str2[]="ABCD";
len =strspn(str1, str2);printf("Length of initial segment matching %d\n", len );return(0);}
#include<stdio.h>#include<string.h>intmain(){constchar haystack[20]="TutorialsPoint";constchar needle[10]="Point";char*ret;
ret =strstr(haystack, needle);printf("The substring is: %s\n", ret);return(0);}
21 strtok
char*strtok(char*str,constchar*delim)
描述
C 库函数char*strtok(char *str,constchar*delim)使用分隔符delim将字符串str分成一系列标记。
参数
str - 此字符串的内容被修改并分解为更小的字符串(标记)。
delim -- 这是包含分隔符的 C 字符串。这些可能因一次呼叫而异。
返回值
此函数返回指向字符串中找到的第一个标记的指针。如果没有要检索的标记,则返回空指针。
#include<string.h>#include<stdio.h>intmain(){char str[80]="This is - www.tutorialspoint.com - website";constchar s[2]="-";char*token;/* get the first token */
token =strtok(str, s);/* walk through other tokens */while( token !=NULL){printf(" %s\n", token );
token =strtok(NULL, s);}return(0);}
22 strxfrm
size_tstrxfrm(char*dest,constchar*src,size_t n)
描述
C 库函数size_tstrxfrm(char*dest,constchar*src,size_t n)将字符串src的前n 个字符转换为当前语言环境,并将它们放入字符串dest中。
参数
dest -- 这是指向要复制内容的目标数组的指针。如果 n 的参数为零,则它可以是空指针。
src -- 这是要转换为当前语言环境的 C 字符串。
n -- 要复制到 str1 的最大字符数。
返回值
此函数返回转换后的字符串的长度,不包括终止空字符。
#include<stdio.h>#include<string.h>intmain(){char dest[20];char src[20];int len;strcpy(src,"Tutorials Point");
len =strxfrm(dest, src,20);printf("Length of string |%s| is: |%d|", dest, len);return(0);}