string函数的一些实现
/*************************************************************************
> File Name: test.cpp
************************************************************************/
#include"stdlib.h"
#include"stdio.h"
#include"string.h" char *mystrcat(char *dest,const char *src)
{
char* temp = dest;
while(*dest != '\0')
{
dest++;
} while((*dest++ = *src++) != '\0'); return temp;
}
char *mystrncat(char *dest,const char *src,size_t n)
{ char* temp = dest;
while(*dest != '\0')
{
dest++;
} while(n--> && (*dest++ = *src++) != '\0'); return temp;
} void* mymemset(void *s, int c, size_t n )
{
unsigned char uc = c;
unsigned char *su = (unsigned char*)s;
while(n-->)
{
*su = uc;
su++;
}
} int mystrlen(const char* str)
{
return *str?(mystrlen(++str)+):;
/*
const char* eos = str;
while(*eos++);
return (eos-str-1);
*/
} void* mymemcpy(void*dst, const void* src,size_t size)
{ if(src==NULL || dst==NULL) return NULL;
void* ret = dst;
while(size--)
{
*(char*)dst = *(char*)src;
dst = (char*)dst + ;
src = (char*)src + ;
}
return ret;
} void* mymemmove(void*dst, const void* src,size_t size)
{
if(src==NULL || dst==NULL) return NULL;
char* psrc;
char* pdst;
//存在覆盖,自后向前进行拷贝
if((src<dst) && (char*)src+size > (char*)dst)
{
psrc = (char*)src + size-;
pdst = (char*)dst + size-;
while(size--)
*pdst-- = *psrc--;
}
else
{
psrc = (char*)src;
pdst = (char*)dst;
while(size--)
{
*pdst++ = *psrc++;
}
}
} int mymemcmp(const void * ptr1, const void * ptr2, size_t num)
{
if(ptr1==NULL || ptr2==NULL || num<) return ; char* pch1 = (char*)ptr1;
char* pch2 = (char*)ptr2; while(num-- && *pch1++ == *pch2++);
return (pch1-pch2)<<;
} int mystrcmp ( const char * str1, const char * str2 )
{
if(str1==NULL || str2 ==NULL) return ; while(*str1 == *str2)
{
str1++;
str2++;
} return (*str1-*str2);
} int mystrncmp( const char * str1, const char * str2, size_t num )
{ if(str1==NULL || str2 ==NULL) return ; while(num-- && *str1 == *str2)
{
str1++;
str2++;
} return (*str1-*str2);
} int main()
{
char ch1[] = "hello";
char ch2[] = "herld";
// printf("strcat : %s\n", mystrncat(ch1,ch2,2)); printf("%d\n",mystrcmp(ch2,ch1)); printf("%d\n",mystrncmp(ch2,ch1,)); return ;
}
string函数的一些实现的更多相关文章
- Python 常用string函数
Python 常用string函数 字符串中字符大小写的变换 1. str.lower() //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...
- string函数分析
string函数分析string函数包含在string.c文件中,经常被C文件使用.1. strcpy函数原型: char* strcpy(char* str1,char* str2);函数功能: 把 ...
- PHP String 函数
[http://www.w3school.com.cn/php/php_ref_string.asp ] PHP String 简介 String 字符串函数允许您对字符串进行操作. 安装 Strin ...
- lua string函数
lua的string函数: 参数中的index从1开始,负数的意义是从后开始往前数,比如-1代表最后一个字母 对于string类型的值,可以使用OO的方式处理,如string.byte(s.i)可以被 ...
- PHP 5 String 函数
PHP 5 String 函数 PHP String 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. 函数 描述 addcslashes() 返回在指定的字符前添加反斜杠的字符串. add ...
- c++string函数详解
string,一个极为好用了函数,学好了这些函数,在模拟以及字符串问题上,回节省很多很多的写代码时间,代码复杂度以及错误率,那么这一类函数都有那些功能呢?我们来逐一介绍(让你大吃一惊,还有这种操作?) ...
- 常用string函数分析
string函数分析string函数包含在string.c文件中,经常被C文件使用.1. strcpy函数原型: char* strcpy(char* str1,char* str2);函数功能: 把 ...
- c++:string函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持 ...
- C string 函数大全
PS:本文包含了大部分strings函数的说明,并附带举例说明.本来想自己整理一下的,发现已经有前辈整理过了,就转了过来.修改了原文一些源码的问题,主要是用char *字义字符串的问题,导致程序运行时 ...
- C++string函数之strcat_s
跟上一篇的strcpy_s一样,是新推出的较为安全的strcat函数 strcat_s脱胎于strcat,用于两个字符串的链接,strcat(str1,str2)直接返回新的str1. 但在vs200 ...
随机推荐
- com.borland.jbcl.layout.*;(XYLayout)
因为某些原因,涉及到需要运行一个十几年前的项目,项目一直报错,缺少.layoutXY,找了好久,CSDN那里一直需要下载,而且收费,而且很麻烦,本来都放弃了的这个jar包原来是java的IDE工具JB ...
- js运行机制详解:event loop
总结 阮一峰老师的博客 一.为什么JavaScript是单线程 JavaScript语言的一大特点就是单线程 那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. JavaScript ...
- Behavior Question - Most challenging project.
介绍项目,challenging的地方 The most challenging project I have ever done was an online collaborative coding ...
- pytorch构建自己的数据集
现在需要在json文件里面读取图片的URL和label,这里面可能会出现某些URL地址无效的情况. python读取json文件 此处只需要将json文件里面的内容读取出来就可以了 with open ...
- 『TensorFlow』流程控制之tf.identity
一个详细介绍 下面程序要做的是,5次循环,每次循环给x加1,赋值给y,然后打印出来, x = tf.Variable(0.0) #返回一个op,表示给变量x加1的操作 x_plus_1 = tf.as ...
- Java中如何设置表格处于不可编辑状态
代码片段如下: 这样的话就可以将表格设置为不可编辑状态
- From CSV to SQLite3 by python 导入csv到sqlite
'''初次使用SQLite,尝试把之前一个csv文件导进去,看了网上各种教程,大多是在SQLite shell模式下使用的,比较麻烦, 这里用了panda,就方便多了,仅作示例供参考. 第一篇开博,想 ...
- Hyperledger fabric-sdk-java Basics Tutorial(转)
原文地址:Hyperledger fabric-sdk-java Basics Tutorial This quick tutorial is for all Java developers, who ...
- 如何设置IntelliJ IDEA智能感知支持Jsp内置对象
一.问题: 在IntelliJ IDEA 新建jsp页面,想通过内置对象获取查询参数,比如:request.getParameter("id"),虽然手动输入后能够运行成功,但是智 ...
- learning makefile manner of working