include<stdio.h>
int myStrlen(char Str)//字符長(zhǎng)度
{
int count=0;
while(Str!='\0')
{
count++;
Str++;
}
return count;
}
void myStrcpy(char *Str1,char Str2)//字符拷貝
{
while(Str2!='\0')
{
Str1=Str2;
Str1++;
Str2++;
}
*Str1='\0';
}
void myStrcat(char Str1,const char Str2)//字符串連接
{
while(Str1!='\0')
{
Str1++;
}
while(Str2!='\0')
{
Str1=Str2;
Str1++;
Str2++;
}
*Str1='\0';
}
int myStrcmp(char str1,char str2)//字符串比較
{
while(str1!='\0'&&str2!='\0')
{
if(str1-str2==0){
str1++;
str2++;
}else{
return str1-str2;
}
}
if(str1=='\0')
{
return 0-str2;
}
if(*str2=='\0')
{
return *str1-0;
}
}
void myStrncpy(char *str1,char str2,int size)
{
int i=0;
while(str2!='\0'&&i<size)
{
str1=str2;
i++;
str1++;
str2++;
}
*str1='\0';
}
void myStrncat(char *str1,char str2,int size)
{
int i=0;
while(str1!='\0')
{
str1++;
}
while(*str2!='\0'&&i<size)
{
*str1=*str2;
i++;
str1++;
str2++;
}
*str1='\0';
}
int myStrncmp(char str1,char str2,int size)//字符串比較
{
int count=0;
while(str1!='\0'&&str2!='\0'&& count<size)
{
if(str1-str2==0&&count<size-1){
str1++;
str2++;
count++;
}else if(str1-str2==0&&count==size-1){
return 0;
}else if(str1!=str2&&count<size)
{
return str1-str2;
}
}
if(str1=='\0'&&count<size)
{
return 0-str2;
}
if(*str2=='\0'&&count<size)
{
return *str1-0;
}
}
int main()
{
/*
char str1[10]="sdfghjr";
int length1=myStrlen(str1);
printf("%d\n",length1);
char str1[10]="sdfghjr";
char str2[30];
myStrcpy(str2,str1);
printf("%s\n",str2);
char str1[30]="qwert";
char str2[10]="zxcvb";
myStrcat(str1,str2);
printf("%s\n",str1);
char str1[10]="abc";
char str2[10]="abcabc";
int result=myStrcmp(str1,str2);
printf("%d\n",result);
char str2[20]="hello world";
char str1[30];
myStrncpy(str1,str2,5);
printf("%s\n",str1);
char str1[40]="world";
char str2[20]="nihao world";
myStrncat(str1,str2,6);
printf("%s\n",str1);
*/
char str1[20]="abcabcd";
char str2[20]="abcabcanc";
int result1=myStrncmp(str1,str2,8);
printf("%d\n",result1);
return 0;
}