1> 自定义函数(my_strlen)实现strlen函数的功能
#include <stdio.h>
#include <string.h>
//定义一个函数来实现strlen的功能
int my_strlen(char arr[])
{
char* start = arr;
while (*arr != '\0')
{
arr++;
}
return arr - start;
}
int main(int argc,const char * argv[])
{
char arr[100] = "";
printf("请输入字符串:");
gets(arr);
int num = my_strlen(arr);
printf("字符串长度为:%d个\n ",num);
return 0;
}
2> 自定义函数(my_strcpy)实现strcpy函数的功能
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, char* src)//dest表示目的地,src表示源头
{
while (*src != '\0')
{
*dest = *src;
dest++;
src++;
}
*dest = *src;
}
int main(int argc,const char * argv[])
{
char arr1[20] = "";
char arr2[20] = "";
printf("请输入字符串:");
gets(arr2);
my_strcpy(arr1, arr2);//arr1目标空间起始地址,arr2源空间起始地址
printf("结果是:%s\n", arr1);
return 0;
}
3> 自定义函数(my_strcmp)实现strcmo函数的功能
#include <stdio.h>
#include <string.h>
//自定义strcmp函数
int my_strcmp(char* a,char* b)
{
int i = 0;
while(*(a+i) != '\0' || *(b+i) != '\0')
{
if(*(a+i) > *(b+i))
return 1;
else if(*(a+i) < *(b+i))
return -1;
else
i++;
}
return 0;
}
int main(int argc,const char * argv[])
{
char arr1[20] = "";
char arr2[20] = "";
printf("请输入字符串1: ");
gets(arr1);
printf("请输入字符串2: ");
gets(arr2);
my_strcmp(arr1,arr2);
printf("结果是: %d\n",my_strcmp(arr1,arr2));
return 0;
}
4> 自定义函数(my_strcat)实现strcat函数的功能
#include <stdio.h>
#include <string.h>
//自定义strcat函数
char* my_strcat(char* str1, const char* str2)
{
char *ret = str1;
while(*str1 != '\0')
{
str1++;
}
while(*str1++ = *str2++)
{
;
}
str1 = '\0';
return ret;
}
int main(int argc,const char * argv[])
{
char arr1[20] = "";
char arr2[20] = "";
printf("请输入字符串1: ");
gets(arr1);
printf("请输入字符串2: ");
gets(arr2);
printf("结果是: %s\n",my_strcat(arr1,arr2));
return 0;
}
5> 自定义函数(my_strstr)实现求src字符串中是否包含子串dest字符串