字符串函数与内存函数扩展 您所在的位置:网站首页 xboxs内存扩展 字符串函数与内存函数扩展

字符串函数与内存函数扩展

#字符串函数与内存函数扩展| 来源: 网络整理| 查看: 265

一.strtok

char * strtok ( char * str, const char * delimiters );

函数功能:将字符串 str 以delimiters中的元素分割,并返回分割后字符串的首字母地址 函数用法:第一次分割用strtok ( str, delimiters ); 之后分割用strtok ( NULL, delimiters );

注意:1.每次传递的delimiters可以不同

2.每次使用后会将str中对应的第一分隔符变成\0,也就是会改变原字符串,如果你不想如此,那就拷贝一份原字符串副本

常见用法: char* res = 0; for(res = strtok(str, delimiters );res != NULL;res = strtok(str, delimiters )){     //操作 } 总结:这个函数是一个蛮怪的函数,使用时应谨慎仔细 二. strerror

char * strerror ( int errnum );

函数功能:根据错误码errno在stdout中打印错误原因 函数用法:当程序运行出错时,errno会自动记录错误原因对应的错误码,根据错误码打印错误原因即可,使用时应加上 #iclude 常见用法: #include int main(){     //发生错误     printf("%s",strerror(errno)); } 三. perror

void perror ( const char * str );

函数功能:strerror的上位替代 函数用法:perror中放入自己想说的话即可,不需要任何头文件 常见用法: int main(){ //发生错误 perror("输入自己想说的话即可"); } 运行结果 四. memcpy与memmove

void * memcpy ( void * destination, const void * source, size_t num );

void * memmove ( void * destination, const void * source, size_t num );

函数功能:memmove是memcpy的上位替代 函数用法:功能类似与strcpy,只不过范围更广,可用于任何数据类型的拷贝.需要注意的是memcpy在一些编译器上不能实现自我拷贝,但memmove可以. memmove实现代码,含自我拷贝用例: #include #include my_memmove(void* dest, const void* src, size_t num) { assert(dest && src); void* start = dest; if (dest < src){ while (num--) { *(char*)dest = *(char*)src; dest = (char*)dest + 1; src = (char*)src + 1; } } else { while (num--) { *((char*)dest + num) = *((char*)src + num); } } return dest; } int main() { char str1[20] = "123456789 10 11"; char str2[20] = "past lives"; char* res = (char*)my_memmove(str1, str1+2, 3); printf("%s\n", str1); res = (char*)my_memmove(str1+2, str1, 3); printf("%s\n", str1); return 0; } 运行结果



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有