模拟实现strlen
int my_strlen(const char*arr)
{
// asssert(arr!=NULL);
int count = 0;
while (*arr != '\0')
{
count++;
arr++;
}
return(count);
}
int main()
{
char arr[] = "abcdftg";
int count = my_strlen(arr);
printf("%d\n", count);
return 0;
}
模拟实现strcpy
//模拟实现strcpy
//把source字符串拷贝到目的地,都包含空字符,结束标志,并且目的地数组大小足够大
char* my_strcpy(char*arr2, const char*arr1)
{
// assert(arr1&&arr2);
char*ret = arr2;
while (*arr2++ =*arr1++)
{
;
}
return (ret);
}
int main()
{
char arr1[10] = "adncfk";
char arr2[20] = "akdncjfkd";
char*ret = my_strcpy(arr2, arr1);
printf("%s\n", arr2);
return 0;
}
模拟实现strcmp
//模拟实现strcmp
//两个字符串比较
int my_strcmp(const char* arr1, const char* arr2)
{
while (*arr1==*arr2)
{
arr1++;
arr2++;
}
//直到字符不同或到达终止的空字符为止。
return (*arr1 - *arr2);
}
int main()
{
char arr1[10] = "abce";
char arr2[10] = "abcd";
int cmp = my_strcmp(arr1, arr2);/
printf("%d\n", cmp);
return 0;
}
模拟实现strcat
//模拟实现strcat
char* my_strcat(char*dest, const char*src)
{
char*ret = dest;
//找到‘\0’
while (*dest!='\0')
{
dest++;
}
//追加
while (*dest++ = *src++)
{
;
}
return(ret);
}
int main()
{
char str1[] = "advfg";
char str2[] = "sfg";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
版权声明:本文为shuangweiyebai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。