1、内存和字符串1、memcpyvoid * memcpy ( void * destination, const void * source, size_tnum );复制内存块从source指向的位置直接复制num个字节的值到destination指向的内存块。对于这个函数,source和destination指向的对象的底层类型是无关的;结果是数据的一个二进制复制。这个函数不检查任何结束空字符(null) 它总是准确地复制num个字节。为了避免溢出,source和destination两个参数指向的数组的大小应该至少是num字节,并且不应该重叠(对于重叠内存块,memmove是一个更安全的方
2、法))。参数destination 指向内容被复制到的目的数组的指针,类型被转换为void*。source 指向复制数据的源数组的指针,类型被转换为void*。num 要复制的字节数。返回值 返回目的指针destination。2、memmovevoid * memmove ( void * destination, const void * source, size_tnum );移动内存块从source指向的位置复制num个字节的值到destination指向的内存块。复制操作的发生就好像使用了中间缓存,允许destination和source重叠。对于这个函数,source和destin
3、ation指向的对象的底层类型是无关的;结果是数据的一个二进制复制。这个函数不检查任何结束空字符(null) 它总是准确地复制num个字节。为了避免溢出,source和destination两个参数指向的数组的大小应该至少是num字节。参数destination 指向内容被复制到的目的数组的指针,类型被转换为void*。source 指向复制数据的源数组的指针,类型被转换为void*。num 要复制的字节数。返回值 返回目的指针destination。3、memsetvoid * memset ( void * ptr, int value, size_tnum );填充内存块将ptr指向的没
4、存块的前num个字节设置为特定的值value(被解释为一个unsigned char类型的值)。参数ptr 指向需要填充的内存块的指针。value 要设置的值,这个值是作为int型传递的,但是该函数用这个值的unsigned char类型转换值来填充内存块。num 要是指特定值的字节数。返回值返回指针ptr。4、memchrconst void * memchr ( const void * ptr, int value, size_tnum );void * memchr ( void * ptr, int value, size_tnum );在内存块中定位字符在ptr指向的没存块的前nu
5、m个字节中搜索value值得第一次出现(被解释为一个unsigned char类型的值),并返回指向该值的指针。参数ptr 指向需要被执行搜索的内存块的指针。value 需要被定位的值。这个值是作为int型传递的,但是该函数用这个值的unsigned char类型转换值来进行逐位的搜索。num 要是分析的字节数。返回值 返回指向ptr指向的内存块中value值第一次出现位置的指针。 如果没有找到value值,则该函数返回NULL。5、memcmpintmemcmp ( const void * ptr1, const void * ptr2, size_tnum );比较两个内存块将ptr2指
6、向的内存块的签num个字节与ptr2指向的内存块的前num个字节进行比较,如果它们都相符合则返回0,反之则返回一个指示其中一个较大的非零值。参数ptr1 指向内存块的指针。ptr2 指向内存块的指针num 需要比较的字节数。返回值返回一个指示两个内存块的内容间的关系的整型值。0值表示两个内存块的内容是相等的。一个大于0的值表示,两个内存块中第一个不匹配的字节是ptr1的比ptr2的大,作为unsigned char类型比较的;小于0则表示相反。函数名: stpcpy功能: 拷贝一个字符串到另一个用法: char *stpcpy(char *destin, char *source);程序例:#
7、include #include intmain(void) char string10; char *str1 = abcdefghi; stpcpy(string, str1); printf(%sn, string); return 0;函数名: strcat功能: 字符串拼接函数用法: char *strcat(char *destin, char *source);程序例:#include #include intmain(void) char destination25; char *blank = , *c = C+, *Borland = Borland; strcpy(des
8、tination, Borland); strcat(destination, blank); strcat(destination, c); printf(%sn, destination); return 0;函数名: strchr功能: 在一个串中查找给定字符的第一个匹配之处用法: char *strchr(char *str, char c);程序例:#include #include intmain(void) char string15; char *ptr, c = r; strcpy(string, This is a string); ptr = strchr(string,
9、 c); if (ptr) printf(The character %c is at position: %dn, c, ptr-string); else printf(The character was not foundn); return 0;函数名: strcmp功能: 串比较用法: intstrcmp(char *str1, char *str2);看Asic码,str1str2,返回值 0;两串相等,返回0程序例:#include #include int main(void) char *buf1 = aaa, *buf2 = bbb, *buf3 = ccc; intptr
10、; ptr = strcmp(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); else printf(buffer 2 is less than buffer 1n); ptr = strcmp(buf2, buf3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return 0;函数名: strncmpi功能: 将一个串中的一部分与另一个串比较,
11、不管大小写用法: intstrncmpi(char *str1, char *str2, unsigned maxlen);程序例:#include #include int main(void) char *buf1 = BBB, *buf2 = bbb; intptr; ptr = strcmpi(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2
12、 equals buffer 1n); return 0;函数名: strcpy功能: 串拷贝用法: char *strcpy(char *str1, char *str2);程序例:#include #include intmain(void) char string10; char *str1 = abcdefghi; strcpy(string, str1); printf(%sn, string); return 0;函数名: strcspn功能: 在串中查找第一个给定字符集内容的段用法: intstrcspn(char *str1, char *str2);程序例:#include
13、#include #include intmain(void) char *string1 = 1234567890; char *string2 = 747DC8; int length; length = strcspn(string1, string2); printf(Character where strings intersect is at position %dn, length); return 0;函数名: strdup功能: 将串拷贝到新建的位置处用法: char *strdup(char *str);程序例:#include #include #include intm
14、ain(void) char *dup_str, *string = abcde; dup_str = strdup(string); printf(%sn, dup_str); free(dup_str); return 0;函数名: stricmp功能: 以大小写不敏感方式比较两个串用法: intstricmp(char *str1, char *str2);程序例:#include #include int main(void) char *buf1 = BBB, *buf2 = bbb; intptr; ptr = stricmp(buf2, buf1); if (ptr 0) pri
15、ntf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0;函数名: strerror功能: 返回指向错误信息字符串的指针用法: char *strerror(interrnum);程序例:#include #include intmain(void) char *buffer; buffer = strerror(errno); printf(Error:
16、 %sn, buffer); return 0;函数名: strcmpi功能: 将一个串与另一个比较, 不管大小写用法: intstrcmpi(char *str1, char *str2);程序例:#include #include int main(void) char *buf1 = BBB, *buf2 = bbb; intptr; ptr = strcmpi(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer
17、 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0;函数名: strncmp功能: 串比较用法: intstrncmp(char *str1, char *str2, intmaxlen);程序例:#include #include int main(void) char *buf1 = aaabbb, *buf2 = bbbccc, *buf3 = ccc; intptr; ptr = strncmp(buf2,buf1,3); if (ptr 0) printf(buffer 2 is greater than bu
18、ffer 1n); else printf(buffer 2 is less than buffer 1n); ptr = strncmp(buf2,buf3,3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return(0);函数名: strncmpi功能: 把串中的一部分与另一串中的一部分比较, 不管大小写用法: intstrncmpi(char *str1, char *str2);程序例:#include #include i
19、nt main(void) char *buf1 = BBBccc, *buf2 = bbbccc; intptr; ptr = strncmpi(buf2,buf1,3); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0;函数名: strncpy功能: 串拷贝用法: char *strncpy(char *desti
20、n, char *source, intmaxlen);程序例:#include #include intmain(void) char string10; char *str1 = abcdefghi; strncpy(string, str1, 3); string3 = 0; printf(%sn, string); return 0;函数名: strnicmp功能: 不注重大小写地比较两个串用法: intstrnicmp(char *str1, char *str2, unsigned maxlen);程序例:#include #include int main(void) char
21、*buf1 = BBBccc, *buf2 = bbbccc; intptr; ptr = strnicmp(buf2, buf1, 3); if (ptr 0) printf(buffer 2 is greater than buffer 1n); if (ptr 0) printf(buffer 2 is less than buffer 1n); if (ptr = 0) printf(buffer 2 equals buffer 1n); return 0;函数名: strnset功能: 将一个串中的所有字符都设为指定字符用法: char *strnset(char *str, cha
22、r ch, unsigned n);程序例:#include #include intmain(void) char *string = abcdefghijklmnopqrstuvwxyz; char letter = x; printf(string before strnset: %sn, string); strnset(string, letter, 13); printf(string after strnset: %sn, string); return 0;函数名: strpbrk功能: 在串中查找给定字符集中的字符用法: char *strpbrk(char *str1, c
23、har *str2);程序例:#include #include intmain(void) char *string1 = abcdefghijklmnopqrstuvwxyz; char *string2 = onm; char *ptr; ptr = strpbrk(string1, string2); if (ptr) printf(strpbrk found first character: %cn, *ptr); else printf(strpbrk didnt find character in setn); return 0;函数名: strrchr功能: 在串中查找指定字符
24、的最后一个出现用法: char *strrchr(char *str, char c);程序例:#include #include intmain(void) char string15; char *ptr, c = r; strcpy(string, This is a string); ptr = strrchr(string, c); if (ptr) printf(The character %c is at position: %dn, c, ptr-string); else printf(The character was not foundn); return 0;函数名:
25、strrev功能: 串倒转用法: char *strrev(char *str);程序例:#include #include intmain(void) char *forward = string; printf(Before strrev(): %sn, forward); strrev(forward); printf(After strrev(): %sn, forward); return 0;函数名: strset功能: 将一个串中的所有字符都设为指定字符用法: char *strset(char *str, char c);程序例:#include #include intmai
26、n(void) char string10 = 123456789; char symbol = c; printf(Before strset(): %sn, string); strset(string, symbol); printf(After strset(): %sn, string); return 0;函数名: strspn功能: 在串中查找指定字符集的子集的第一次出现用法: intstrspn(char *str1, char *str2);程序例:#include #include #include intmain(void) char *string1 = 1234567890; char *st
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1