自定义封装

1>自定义函数(my_strlen)实现strlen函数功能

     1	#include<stdio.h>
     2	#include<string.h>
     3	#define M 100
     4	int my_strlen(char str[])       //定义my_strlen实现strlen功能
     5	{
     6		int sum=0;
     7		for(int i=0;str[i]!='\0';i++)
     8		{
     9			sum++;
    10		}
    11		return sum;
    12	}
    13	int main(int argc, const char *argv[])
    14	{
    15		char str[100]="";    
    16		printf("请输入字符串:");
    17		gets(str);
    18		int len=my_strlen(str);         //调用my_strlen函数
    19		printf("字符串长度为%d\n",len);
    20		return 0;
    21	}

2>自定义函数(my_strcpy)实现strcpy函数功能

     1	#include<stdio.h>
     2	#include<string.h>
     3	#define M 100
     4	void my_strcpy(char str1[],char str2[])  //定义一个能实现strcpy功能的函数
     5	{
     6		for(int i=0;str1[i]!='\0';i++)
     7		{
     8			str2[i]=str1[i];
     9		}
    10		printf("%s\n",str2);
    11	}
    12	int main(int argc, const char *argv[])
    13	{
    14		char str1[]="qwertasd"; //定义一个字符数组
    15		char str2[M]="";       //定义一个需要复制的数组
    16		my_strcpy(str2,str1);  //调用函数
    17		return 0;
    18	}

3>自定义函数(my_strcmp)实现strcmp函数的功能

     1	#include<stdio.h>
     2	#include<string.h>
     3	#define M 100
     4	int my_strcmp(char a[],char b[])
     5	{
     6		for(int i=0;a[i]!='\0'&&b[i]!='\0';i++)
     7		{
     8			if(a[i]>b[i])
     9			{
    10				return 1;
    11			}
    12			if(a[i]<b[i])
    13			{
    14				return -1;
    15			}
    16		}
    17		return 0;
    18	}
    19	int main(int argc, const char *argv[])
    20	{
    21		char str1[M]="";
    22		char str2[M]="";
    23		printf("请输入字符串1:");
    24		gets(str1);
    25		printf("请输入字符串2:");
    26		gets(str2);
    27		int result=my_strcmp(str1,str2);
    28		switch(result)
    29		{
    30			case 1:printf("字符串1>字符串2\n");
    31				   break;
    32			case 0:printf("字符串1=字符串2\n");
    33				   break;
    34			case -1:printf("字符串1<字符串2\n");
    35				   break;
    36		}
    37				
    38	
    39		return 0;
    40	}

4>自定义函数(my_strcat)实现strcat函数的功能

     1	#include<stdio.h>
     2	#include<string.h>
     3	#define M 100
     4	char my_strcat(char a[],char b[])  //定义函数实现strcat函数功能
     5	{
     6		int j=strlen(a);
     7		for(int i=0;b[i]!='\0';i++)
     8		{
     9			a[j]=b[i];
    10			j++;
    11		}
    12	}
    13	int main(int argc, const char *argv[])
    14	{
    15		char str1[M]="";
    16		char str2[M]="";
    17		printf("请输入字符串1:");
    18		gets(str1);
    19		printf("请输入字符串2:");
    20		gets(str2);
    21		my_strcat(str1,str2);   //调用函数
    22		printf("%s\n",str1);
    23		return 0;
    24	}

5>自定(my_strstr)实现求src字符串中是否包含子串dest字符

(没写出来)

     1	#include<stdio.h>
     2	#include<string.h>
     3	int my_strstr(char str1[],char str2[])
     4	{
     5		int i=0,j=0,k=0;
     6		for(i=0;str1[i]!='\0';i++)  //循环找到str2首字符在str1的位置
     7		{
     8			k++;
     9			if(str2[0]==str1[i])    //判断能找到str2首字母在str1的位置
    10			{
    11				for(j=0;str2[j]!='\0';j++)
    12				{
    13					if(str2[j]!=str1[k])
    14					{
    15						printf("不包含\n");
    16						return 0;
    17					}
    18				}
    19				printf("包含\n");
    20				return 0;
    21			}	
    22		}
    23		printf("不包含\n");
    24	}
    25	int main(int argc, const char *argv[])
    26	{
    27		char str1[]="hello,world";
    28		char str2[]="world";
    29		my_strstr(str1,str2);
    30		return 0;
    31	}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值