string.h
1 #ifndef __STRING_NO_EXPORTS
using ::std::size_t;
using ::std::memcpy;//xtern void *memcpy(void *dest, void *src, unsigned int count);
// : src count dest
using ::std::memmove;// memmove() , :
// void * memmove(void *dest, const void *src, size_t num);
//memmove() memcpy() src num dest 。
// ,memmove() ,
// src dest ,memmove() , memcpy() 。
using ::std::strcpy;// char *strcpy(char* dest, const char *src);
// src NULL dest
//.src dest dest src 。 dest
using ::std::strncpy;//char *?strncpy(char *dest, char *src,size_t num);
// src ( , 、 ....) dest, num ,
// dest 。 null ('\0'), num , (num - n)
//(n null null ) null destination。
using ::std::strcat;//char *strcat(char *dest,char *src);
// src dest ( dest '\0') '\0'。
//src dest dest src 。 dest 。
using ::std::strncat;//char *strncat(char *dest,char *src,int n);
// src n dest ( dest '\0')
// '\0'。src dest dest src 。 dest 。
using ::std::memcmp;
// int memcmp(const void *buf1, const void *buf2, unsigned int count);
//
// buf1 buf2 count 。
//
// buf1buf2 , >0
using ::std::strcmp;//int strcmp(const char *s1,const char * s2);
// s1 s2。
// s1s2 , >0
// : ( ASCII ), '\0' 。
using ::std::strncmp;//int?strncmp(char *str1, char *str2, int maxlen);
// str1 str2 maxlen 。
// maxlen , =0;
// maxlen , str1[n] str2[n] , (str1[n]-str2[n])。
using ::std::strcasecmp;// int?strcasecmp?(const char *s1, const char *s2);
//strcasecmp() s1 s2 , 。
// s1 s2 0。
//s1 s2 0 。
//s1 s2 0 。
using ::std::strncasecmp;
//int?strncasecmp(const char *s1, const char *s2, size_t n)
//strncasecmp() s1 s2 n , ,
// s1 s2 0?
//s1 s2 0
//s1 s2 0 .
using ::std::strcoll;
// strcoll() 。
//int strcoll(const char *str1, const char *str2)
// str1?-- 。
// str2?-- 。
// :
// <0, str1 str2
// , > 0, str2? str1
// = 0, str1? str2
// (LC_COLLATE "POSIX" "C") strcmp ASCII , 。
// LC_COLLATE , LC_COLLATE 。 : , 。
//2、strcmp , 0, , 。
// : , ASCII , ,
// ,
//, , , 。
using ::std::memchr;
// void *memchr(const void *str, int c, size_t n)
// str n c( ) 。
//
// memchr() 。
//void *memchr(const void *str, int c, size_t n)
//
//str -- 。
//c -- int , 。
//n -- 。
//
// , , NULL。
//
// memchr() 。
//
//#include
//#include
//
//int main ()
//{
// const char str[] = "http://www.runoob.com";
// const char ch = '.';
// char *ret;
//
// ret = (char*)memchr(str, ch, strlen(str));
//
// printf("|%c| - |%s|
", ch, ret);
//
// return(0);
//}
using ::std::strchr;//char *strchr(char *str,char c);
using ::std::strcspn;
// C size_t strcspn(const char *str1, const char *str2) str1 str2 。
//
// strcspn() 。
//size_t strcspn(const char *str1, const char *str2)
using ::std::strpbrk;
// C char *strpbrk(const char *str1, const char *str2)
// str1 str2 , 。
// , str1 , str2 , , 。
//
// strpbrk() 。
//char *strpbrk(const char *str1, const char *str2)
//
//str1 -- C 。
//str2 -- str1 。
//
// str1 str2 , NULL。
//
// strpbrk() 。
//#include
//#include
//int main ()
//{
// const char str1[] = "abcde2fghi3jk4l";
// const char str2[] = "34";
// char *ret;
// ret = strpbrk(str1, str2);
// if(ret)
// {
// printf(" : %c
", *ret);
// }
// else
// {
// printf(" ");
// }
//
// return(0);
//}
// , :
// : 3
using ::std::strrchr;
// C char *strrchr(const char *str, int c) str c( ) 。
//
// strrchr() 。
//char *strrchr(const char *str, int c)
//
//str -- C 。
//c -- 。 int , char 。
//
// str c 。 , 。
//
// strrchr() 。
//
//#include
//#include
//
//int main ()
//{
// int len;
// const char str[] = "https://www.runoob.com";
// const char ch = '.';
// char *ret;
//
// ret = strrchr(str, ch);
//
// printf("|%c| - |%s|
", ch, ret);
//
// return(0);
//}
// , :
//|.| - |.com|
using ::std::strspn;
// C size_t strspn(const char *str1, const char *str2) str1 str2 。
//
// strspn() 。
//size_t strspn(const char *str1, const char *str2)
//
//str1 -- C 。
//str2 -- str1 。
//
// str1 str2 。
//
// strspn() 。
//#include
//#include
//int main ()
//{
// int len;
// const char str1[] = "ABCDEFG019874";
// const char str2[] = "ABCD";
// len = strspn(str1, str2);
// printf(" %d
", len );
//
// return(0);
//}
// , :
// 4
using ::std::strstr;
// C char *strstr(const char *haystack, const char *needle) haystack needle , '\0'。
//
// strstr() 。
//char *strstr(const char *haystack, const char *needle)
//
//haystack -- C 。
//needle -- haystack 。
//
// haystack needle , null。
//
// strstr() 。
//#include
//#include
//int main()
//{
// const char haystack[20] = "RUNOOB";
// const char needle[10] = "NOOB";
// char *ret;
// ret = strstr(haystack, needle);
// printf(" : %s
", ret);
//
// return(0);
//}
// , :
// : NOOB
using ::std::strtok;
// C char *strtok(char *str, const char *delim) str ,delim 。
//
// strtok() 。
//char *strtok(char *str, const char *delim)
//
//str -- 。
//delim -- C 。
//
// , , 。
//
// strtok() 。
//
//#include
//#include
//
//int main () {
// char str[80] = "This is - www.runoob.com - website";
// const char s[2] = "-";
// char *token;
//
// /* */
// token = strtok(str, s);
//
// /* */
// while( token != NULL ) {
// printf( "%s
", token );
//
// token = strtok(NULL, s);
// }
//
// return(0);
//}
// , :
//This is
// www.runoob.com
// website
#ifndef __STRICT_ANSI__
using ::std::strtok_r;
#endif
using ::std::_strtok_r;
using ::std::memset;
// void *memset(void *str, int c, size_t n) c( ) str n 。
//
// memset() 。
//void *memset(void *str, int c, size_t n)
//
//str -- 。
//c -- 。 int , 。
//n -- 。
//
// str 。
//
// memset() 。
//#include
//#include
//int main ()
//{
// char str[50];
// strcpy(str,"This is string.h library function");
// puts(str);
// memset(str,'$',7);
// puts(str);
//
// return(0);
//}
// , :
//This is string.h library function
//$$$$$$$ string.h library function
using ::std::strerror;
// char *strerror(int errnum) errnum, 。strerror 。
//
// strerror() 。
//char *strerror(int errnum)
//
//errnum -- , errno。
//
// , errnum。
//
// strerror() 。
//#include
//#include
//#include
//int main ()
//{
// FILE *fp;
// fp = fopen("file.txt","r");
// if( fp == NULL )
// {
// printf("Error: %s
", strerror(errno));
// }
//
// return(0);
//}
// , , :
//Error: No such file or directory
using ::std::strlen;
// unsigned int strlen(char *s);
// s (unsigned int ) , '\0' . s , NULL
using ::std::strlcpy;
using ::std::strlcat;
using ::std::_membitcpybl;
using ::std::_membitcpybb;
using ::std::_membitcpyhl;
using ::std::_membitcpyhb;
using ::std::_membitcpywl;
using ::std::_membitcpywb;
using ::std::_membitmovebl;
using ::std::_membitmovebb;
using ::std::_membitmovehl;
using ::std::_membitmovehb;
using ::std::_membitmovewl;
using ::std::_membitmovewb;
#endif /* __STRING_NO_EXPORTS */
//
// 1 void *memchr(const void *str, int c, size_t n)
// str n c( ) 。
//2 int memcmp(const void *str1, const void *str2, size_t n)
// str1 str2 n 。
//3 void *memcpy(void *dest, const void *src, size_t n)
// src n dest。
//4 void *memmove(void *dest, const void *src, size_t n)
// src n dest 。
//5 void *memset(void *str, int c, size_t n)
// c( ) str n 。
//6 char *strcat(char *dest, const char *src)
// src dest 。
//7 char *strncat(char *dest, const char *src, size_t n)
// src dest , n 。
//8 char *strchr(const char *str, int c)
// str c( ) 。
//9 int strcmp(const char *str1, const char *str2)
// str1 str2 。
//10 int strncmp(const char *str1, const char *str2, size_t n)
// str1 str2 , n 。
//11 int strcoll(const char *str1, const char *str2)
// str1 str2 , LC_COLLATE 。
//12 char *strcpy(char *dest, const char *src)
// src dest。
//13 char *strncpy(char *dest, const char *src, size_t n)
// src dest, n 。
//14 size_t strcspn(const char *str1, const char *str2)
// str1 str2 。
//15 char *strerror(int errnum)
// errnum, 。
//16 size_t strlen(const char *str)
// str , , 。
//17 char *strpbrk(const char *str1, const char *str2)
// str1 str2 , 。 , str1 , str2 , , 。
//18 char *strrchr(const char *str, int c)
// str c( ) 。
//19 size_t strspn(const char *str1, const char *str2)
// str1 str2 。
//20 char *strstr(const char *haystack, const char *needle)
// haystack needle( ) 。
//21 char *strtok(char *str, const char *delim)
// str ,delim 。
//22 size_t strxfrm(char *dest, const char *src, size_t n)
// LC_COLLATE src n , dest 。