//strstr - 字符串查找函数//在一个字符串中查找子字符串char*my_strstr(constchar* str1,constchar* str2){assert(str1 && str2);char* s1;char* s2;char* cp = str1;if(*str2 =='\0')return str1;while(*cp){
s1 = cp;
s2 = str2;while(*s1 &&*s2 &&*s1 ==*s2){
s1++;
s2++;}if(*s2 =='\0'){return cp;}
cp++;}//找不到returnNULL;}intmain(){char arr1[]="i am a good student, yeah";char arr2[]="student";//查找arr1中arr2第一次出现的位置char* ret =my_strstr(arr1, arr2);if(ret ==NULL){printf("找不到\n");}else{printf("%s\n", ret);}return0;}
5.运用strtok()
intmain(){char arr1[]="@its-liu-feng";char arr2[100]={'0'};//临时数据char sep[]="@-";strcpy(arr2, arr1);char* ret =NULL;//分割字符串for(ret =strtok(arr2, sep); ret !=NULL; ret =strtok(NULL, sep)){printf("%s\n", ret);}return0;}
6.模拟memcpy()
void*my_memcpy(void* dest,constvoid* src,size_t count){void* ret = dest;assert(dest && src);while(count--){*(char*)dest =*(char*)src;
dest =(char*)dest +1;
src =(char*)src +1;}return ret;}
#include<string.h>intmain(){//打开文件//以只读形式打开test.txt,但是并没有创建,所以返回一个空指针
FILE* pf =fopen("test.txt","r");if(pf ==NULL){//printf("%s\n", strerror(error));//C语言函数调用失败的时候,会把错误码,存储到error变量中 //perror相当于打印+strerror(error)perror("测试");//测试: No such file or directory//}return0;}