C字符串操作
字符串求长度,连接,融合,比较
#include<stdio.h>
int my_strlen(char* arr);
char const *my_strcpy(char* arr1,char const *arr2);
void my_strcat(char* arr1,char const *arr2);
void my_strcmp(char const* arr1,char const* arr2);
void Print(char const* arr);
int main()
{
int len,len1,len2,flag;
char str1[30]={"yhping"};
char str2[30]={"tuluning"};
char str3[30];
char str4[30];
len1 = my_strlen(str1);
printf("%d\n",len1);
my_strcpy(str3,str1);
Print(str3);
my_strcpy(str4,my_strcpy(str3,str1));
Print(str4);
len2 = my_strlen(str2);
my_strcat(str1,str2);
len =len1 + len2;
Print(str1);
my_strcmp(str1,str2);
getchar();
return 0;
}
void Print(char const* arr)
{
while(*arr!='\0')
{
printf("%c",*arr++);
}
printf("\n");
}
int my_strlen(char* arr)
{
int num = 0;
while(*arr!='\0')
{
*arr++;
num++;
}
return num;
}
char const*my_strcpy(char* arr2,char const* arr1) //COPY 目标在前源在后
{
char *p =arr2;
while(*arr1!='\0')
{
*arr2++=*arr1++;
}
return p;
}
void my_strcat(char *arr1,char const* arr2)
{
while(*arr1!='\0')
{
*arr1++;
}
while(*arr2!=0)
{
*arr1++=*arr2++;
}
}
void my_strcmp(char const* arr1,char const* arr2)
{
int rc = 0;
while(!(rc=*arr1-*arr2)&&*arr1)
{
arr1++;
arr2++;
}
if(*arr1=='\0')
{
printf("yes");
}
else
{
printf("no");
}
}