首页 > 其他 > 详细

实现mystrcpy(), mystrcmp(), mystrcat(), mystrlen()

时间:2016-01-07 07:43:09      阅读:333      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

/*
	mystrcpy:
	复制字符串from 中的字符到字符串to,
	包括空值结束符。
*/

/*
	mystrcmp:
	比较字符串str1 and str2
	返回值			解释
	less than 0		str1 is less than str2

	equal to 0		str1 is equal to str2

	greater than 0	str1 is greater than str2
*/

/*
	mystrcat:
	函数将字符串str2 连接到str1的末端
*/

/*
	mystrlen:
	函数返回字符串str 的长度( 即空值结束符之前字符数目)。
*/

void mystrcpy(char *to, const char *from);
int mystrcmp(const char *str1, const char *str2);
void mystrcat(char *str1, const char *str2);
size_t mystrlen(char *str);

int main(){
	char str1[20] = "abcdfg";
	char str2[] = "abcde";
	//mystrcat(str1,str2);
	//mystrcpy(str1,str2);
	printf("%d\n",mystrlen(str1));
	system("pause");
	return 0;
}

void mystrcpy(char *to, const char *from){
	assert((to != NULL) && (from != NULL));
	while ((*to++ = *from++) != ‘\0‘);
	*to = ‘\0‘;
}

int mystrcmp(const char *str1, const char *str2){
	assert((str1 != NULL) && (str2 != NULL));
	for (; (*str1) && (*str2) && (*str1 == *str2);++ str1,++ str2);
	return (*str1 - *str2);
}

void mystrcat(char *str1, const char *str2){
	assert((str1!=NULL) && (str2!=NULL));
	char* ret = str1;
	for (; *str1 != ‘\0‘; ++str1);
	while ((*str1++ = *str2++) != ‘\0‘);
}

size_t mystrlen(char *str){
	assert(str != NULL);
	size_t length = 0;
	for (; *str++ != ‘\0‘;length ++);
	return length;
}

  

实现mystrcpy(), mystrcmp(), mystrcat(), mystrlen()

原文:http://www.cnblogs.com/mutaohengheng/p/5108026.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!