好久没有更新博客了,刚刚出炉练练手的程序如下,很简单,没有考虑过多复杂的东西,有好的想法,欢迎指教:

字符查找函数:

char *my_strchr(const char *s,int c)
{
char *pTemp = s; do
{
if(*pTemp == c)
{
return pTemp;
}
}
while(*pTemp++); return NULL;
}

字符串比较函数:

int my_strcmp(const char *s1,const char *s2)
{
char *pTemp1 = s1;
char *pTemp2 = s2; while(*pTemp1 && *pTemp2 && ((*pTemp1++) == (*pTemp2++)));
//{
/*return ((*--pTemp1) - (*--pTemp2));*/
//}// if(*pTemp1 && *pTemp2)
{
return ((*--pTemp1) - (*--pTemp2));
} if(*pTemp1)
{
return *pTemp1;
} if(*pTemp2)
{
return -*pTemp2;
} return ; }

字符串查找函数:

char *my_strstr(const char *haystack,const char * needle)
{
char *pTempSrc = haystack; char *pTempDes = needle; do
{
if(*pTempSrc != *pTempDes++)
{
pTempDes = needle;
} if(!*pTempDes)
{
return pTempSrc-(pTempDes-needle)+;
}
}while(*pTempSrc++); return NULL; }

内存比较函数:

int my_memcmp(const void *s1,const void *s2,size_t n)
{
char *pTemp1 = s1;
char *pTemp2 = s2; while(n-- > )
{
if(*pTemp1++ != *pTemp2++)
{
break;
}
} if(*pTemp1 && *pTemp2)
{
return ((*--pTemp1) - (*--pTemp2));
} if(*pTemp1)
{
return *pTemp1;
} if(*pTemp2)
{
return -*pTemp2;
} return ; }

字符串变成数字函数:

int my_atoi(const char *nptr)
{
char *pTemp = nptr; int sum = ;
unsigned flag = ; if(*pTemp == '-')
{
flag = ;
pTemp++;
} do
{
if((*pTemp >= '') && (*pTemp <= ''))
{
sum *= ;
sum += (*pTemp - '');
}
else
{
return -;
} }while(*++pTemp); return (flag == ? sum : -sum); }

数字变成字符串函数:

int my_itoa(int val,char *ret)
{
char *pTemp = ret;
int bits = ; int flag = ; if(val < )
{
flag = ;
val = -val; pTemp++;
ret[] = '-';
}
//printf("val %d\n",val); while(val)
{
(*pTemp++) = val% + '';
bits++;
//printf("%d \n",val);
val = val / ; } *pTemp = '\0'; //printf("%s \n",ret); //fan zhuan
int i = ;
int temp = ;
for( i = ; i < bits/; i++)
{
temp = ret[i+];
ret[i+] = ret[bits-i--];
ret[bits-i--] = temp;
} return ; }

上传完毕,欢迎园友指正,谢谢!

c语言实现常见字符串函数strchr strstr strcmp atoi itoi(字符串换成整数)的更多相关文章

  1. PHP字符串函数之 strstr stristr strchr strrchr

    strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...

  2. 字符串函数 mysql 和sqlserver 中对于字符串的常用函数和区别

    1. 对于字符串大小写的统一 mysql和sqlserver中都有同名函数lower()和upper(),但是mysql中还有另外一对函数,达到同样的目的,lcase()和ucase(),也就是英文中 ...

  3. 微信小程序 功能函数 把数字1,2,3,4换成春,夏,秋,冬

    let season =‘1,2,3’; // console.log(season.length) if (season){ if (season.length==1){ seasonChe1=se ...

  4. C语言-字符串函数的实现(五)之strstr

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  5. C语言字符串函数

    strtok()     字符串分割函数strstr()     字符串查找函数 范例 #include <string.h> main() {     char * s = " ...

  6. C语言-字符串函数的实现(一)之strlen

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  7. C语言-字符串函数的实现(二)之strcpy

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  8. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

  9. php常用的字符串函数

    addslashes -- 使用反斜线引用字符串 chr -- 返回相对应于 ascii 码值所指定的单个字符. chunk_split -- 将字符串分割成小块 count_chars --  返回 ...

随机推荐

  1. 利用django.core.mail发送QQ邮件的配置

    1.在 settings.py 的最后面加上类似这些 EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' # 如果是 163 改成 smtp.163.com ...

  2. 20181009-3 选题 Scrum立会报告+燃尽图 02

    Scrum立会报告+燃尽图(02)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2191 一.小组介绍 组长:刘莹莹 ...

  3. timer Compliant Controller project (4)layout and gerber, paning

    1 LAYOUT 2 Gerber 3 CAM350-Paining

  4. tornado多路由示例

    main.py代码: # encoding: utf-8 """ @version: ?? @author: andu99 @contact: andux@qq.com ...

  5. C#读写三菱Fx PLC 使用Fx 串口协议 读写Fx3U设备

    本文将使用一个Github开源的组件库技术来读写三菱 FX PLC,使用的是基于串口的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地 ...

  6. error: 'ENOSYS' undeclared (first use in this function)

    /************************************************************************ * error: 'ENOSYS' undeclar ...

  7. swift3.0 创建经典界面的九宫图

    网络上很多例子都是早期的 Object-C的效果,现在用到Swift3.0开发,故把网络上的例子翻译过来,达到基本的效果.可是现在这个还不算很满意,再下次继续进行优化 override func vi ...

  8. 【Python】matplotlib 双y轴绘制及合并图例

    1.双y轴绘制 关键函数:twinx() 问题在于此时图例会有两个. # -*- coding: utf-8 -*- import numpy as np import matplotlib.pypl ...

  9. ARM汇编返回指令

    [ 588.756226] task: ffff000008a22f80 task.stack: ffff000008a10000 [ 588.762153] PC is at vb2_buffer_ ...

  10. centos7 安装配置rsyslog + LogAnalyzer + mysql

    https://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html 安装LNMP 一键安装包 ...