打牢基本功,冲!
学习代码
#include <stdio.h>
#include <string.h>
int my_strlen(char *p)
{
char *len=p;
while(*len!='\0')
{
len++;
}
return len-p;
}
char *my_strstr(char *haystack,char *needle)
{
int len1=my_strlen(haystack);
int len2=my_strlen(needle);
int i,j;
for(i=0;i<len1;i++)
{
for(j=0;j<len2;j++)
{
if(haystack[i+j]!=needle[j])break;
}
if(j==len2)return haystack+i;
}
return NULL;
}
int my_strcmp(char *s1,char *s2)
{
int i=0;
int len1=my_strlen(s1);
int len2=my_strlen(s2);
while(len1==len2)
{
if(s1[i]>s2[i])return 1;
else if(s1[i]<s2[i])return -1;
else if((s1[i]=='\0')&&(s2[i]=='\0'))return 0;
i++;
}
if(len1>len2)return 2;
if(len1<len2)return -2;
}
char *my_strcat(char *s1,char *s2,int n)
{
int i=0;
int len1=my_strlen(s1);
int len2=my_strlen(s2);
if((len1+len2)<n)
{
for(i=0;i<len2;i++)
{
s1[len1+i]=s2[i];
}
s1[len1+i]='\0';
}
else
{
printf("lack of space\n");
}
}
char *my_strcpy(char *src,char *des,int n)
{
int i=0;
int len1=my_strlen(src);
if(n>len1)
{
for(i=0;i<len1;i++)
{
des[i]=src[i];
}
des[i]='\0';
}
else
{
printf("lack of space\n");
}
}
int main(void)
{
char str1[]="assfdafsd4";
char str2[100]="";
}