自主实现strcpy,strncpy,strcat,strlen函数的功能

#include<stdio.h>
#include <windows.h>
#define N 10

void main()
{
char choice = ‘1’;

void mystrcpy(char str_1[],char str_2[]);
void mystrncpy(char str1[],char str2[]);
void mystrcat(char str1[],char str2[]);
void mystrlen(char str1[]);


char str1[N];
char str2[N];



printf("\n");
printf("请输入字符串:");
gets(str1);
printf("\n");
printf("请输入字符串:");
gets(str2);
printf("\n");


printf("1.调用mystrcpy\n");
printf("2.调用mystrncpy\n");
printf("3.调用mystrcat\n");
printf("4.调用mystrlen\n");
printf("0.Exit the system \n");

printf("Please choise (0-4): \n");

while (choice != '0')

{
choice = getchar();

switch(choice)
{
	case '1': mystrcpy(str1,str2);break;
    case '2': mystrncpy(str1,str2);break;
	case '3': mystrcat(str1,str2);break;
	case '4': mystrlen(str1);break;
	case '0':exit(0);
default:
	printf("Choice Error,Please select again(0-4).");

}

}
}

void mystrcpy(char str_1[],char str_2[])
{
int i;

for(i = 0;i<N;i++)
{
  str_1[i] = str_2[i];
}
str_1[N] = '\0';
printf("%s",str_1);
printf("\n");

}

void mystrncpy(char str1[],char str2[])
{
int i,n;
printf(“请输入n,将前n个字符进行复制:”);
scanf("%d",&n);
printf("\n");

for(i = 0;i<n;i++)
{
  str1[i] = str2[i];
}
str1[n] = '\0';
printf("%s",str1);
printf("\n");

}

void mystrcat(char str1[],char str2[])
{

int length = 0,i;//测字符串str1的长度
for(i = 0;str1[i] != '\0';i++) length++;

for(i = 0;str2[i] != '\0';i++,length++)
{
	str1[length] = str2[i];
}
str1[length+i] = '\0';
printf("%s",str1);
printf("\n");

}

void mystrlen(char str1[])
{
int i,length = 0;

for(i = 0;str1[i] != '\0';i++) length++;

printf("字符串的长度为%d",length);
printf("\n");

}

发布了25 篇原创文章 · 获赞 5 · 访问量 1902

猜你喜欢

转载自blog.csdn.net/DoMyBestintheworld/article/details/84929834