【C深度剖析】自实现 strcmp strlen strcpy strcat

int str_cmp(const char *s1,const char *s2)
{
	int ret;
	while(!(ret = *(unsigned char *)s1 - *(unsigned char *)s2) && s2++)
	  s1++,s2++;
	if(ret > 0)
		ret = 1;
	else if(ret <0)
	  ret = -1;

	return ret;
}

int str_len(const char *s)
{
	assert(s != 0);
	char *start = s;
	while(*s++);
	return (s - start - 1);
}

char* str_cpy(char *dest,char *src)
{
	assert( (dest != 0) && (src != 0));
	char* ret = dest;
	while(*src)
	  *dest++ = *src++;
	*dest = ‘\0‘;
	return ret;
}

char* str_cat(char *dest,char *src)
{
	assert((dest != 0) && (src != 0));
	char *ret = dest;
	while(*dest)
	  dest++;
	while(*src)
	  *dest++ = *src++;
	*dest = ‘\0‘;
	return ret;
}
时间: 2024-12-19 19:35:08

【C深度剖析】自实现 strcmp strlen strcpy strcat的相关文章

strlen(); strcpy(); strcat(); strcmp() ---笔记

指针小知识点: int a =10; int *p=&a; int *q=p;        //p中保存的是a的地址 int *q=p;       //将p的值赋给q 作用是让q也指向a strlen( ); 求字符串的长度 strcpy( ); 复制字符串 strcat( ); 连接字符串 strcmp( ); 字符串大小的比较 1 typedef unsigned int size_t 2 3 size_t my_strlen (const char *str) // strlen()

strlen() strcpy() strcat() strcmp()实现

strlen函数原型:unsigned int strlen(const char *);返回的是字符串中第一个\0之前的字符个数. 1.strcat函数原型char* strcat(char* dest,const char* src); 进行字符串的拼接,将第二个字符串连接到第一个字符串中第一个出现\0开始的地方.返回的是拼接后字符的首地址.并不检查第一个数组的大小是否可以容纳第二个字符串.如果第一个数组的已分配的内存不够容纳第二个字符串,则多出来的字符将会溢出到相邻的内存单元. 2.str

实现strlen,strcpy,strcat,strcmp同功能的函数stringLength,stringCopy,stringCatch,stringCompare

1 #import <Foundation/Foundation.h> 2 3 /* 4 求字符串长度 5 */ 6 int stringLength(char arr[]); 7 8 9 /* 10 复制字符串 11 将arr1 复制到 arr 12 */ 13 void stringCopy(char arr[],char arr1[]); 14 15 16 17 /* 18 拼接字符串 19 将arr1 加到 arr 后 20 */ 21 void stringCatch(char ar

各种字符串函数(strcpy,strcmp,strlen)之深度剖析

//字符串复制函数1 void strcpy1(char str1[], char str2[]){ int i = 0; for (; str2[i] != '\0'; i++){ str1[i] = str2[i]; } str1[i] = '\0'; } //2 void strcpy2(char str1[], char str2[]){ int i = 0; while (str1[i] = str2[i])i++; } //字符串长度函数1 int strlen1(char str[

[ 1011] &lt;&lt;C语言深度剖析&gt;&gt; 测试 TEST

/******************************** **  wzsts<C语言深度剖析>2016 ** **                    ** **     fun1~fun6代表6章节内容 ** **fun10~fun19代表fun1所调用函数 ** **                    ** **     世界因规则而美好     ** ** #if(1)可运行,#if(0)不运行. ** ** Data  Author   PC       ** **16

c 深度剖析 5

1,指针没有指向一块合法的区域 1指针没有初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> #include <string.h> struct aa {     char  *pa;     char c; }ssa,*ssb; void  main() { strcpy(ssa.pa,"abc"); printf("%s \n",ssa.pa); } 1 2 3 4 5 6 7 8

读书笔记之:C语言深度剖析

读书笔记之:C语言深度剖析 <C 语言深度解剖>这本书是一本“解开程序员面试笔试的秘密”的好书.作者陈正冲老师提出“以含金量勇敢挑战国内外同类书籍”,确实,这本书中的知识点都是一些在面试中常见的考点,并且很多都是我们平常不注意的点,对于我们深入理解C语言确实很有帮助. 第1章关键字 1.register虽然寄存器的速度非常快,但是使用register修饰符也有些限制的:register变量必须是能被CPU寄存器所接受的类型.意味着register变量必须是一个单个的值,并且其长度应小于或等于整

横瓜先生深度剖析QQ空间前端后端技术AJAX与FORM等等

[皇帝]北京-横瓜-7年(601069289)  22:06:34 [元帅]横瓜-PHP教父(601069289)  21:35:29 这里是QQ空间的图片上传方法 是FLASH 我草 [元帅]横瓜-PHP教父(601069289)  21:36:31 竟然不是JS QQ空间用FLASH 图片上传方法 [元帅]横瓜-PHP教父(601069289)  21:37:35 至此,整个QQ空间的技术,已经全部被我破解 @IT柏拉图 [元帅]IT柏拉图(2500875)  21:38:11 你真是天才,

【源码】StringBuilder和StringBuffer源码深度剖析

//------------------------------------------------------------------------ 写篇博客不容易,请尊重作者劳动成果.转载请注明出处:http://blog.csdn.net/chdjj //------------------------------------------------------------------------ 我觉得要通过源码研究一个类,应该先从整体上了解这个类,比如说这个类的继承体系,有哪些超类,继承