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

字符查找函数:

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. react拖拽(表格拖拽排序、普通拖拽排序以及树形拖拽排序)

    表格拖拽排序:组件地址:https://reactabular.js.org/#/drag-and-drop 拖动的排序是用React-DnD:React-DnD:http://react-dnd.g ...

  2. 活字格企业Web应用生成器荣获"2017年度优秀软件产品"

    日前,中国软件行业协会权威发布"2017年度优秀软件产品"名单,活字格企业 Web 应用生成器凭借产品的独特优势,和近年来在企业Web应用方面的杰出贡献,位列其中,受到用户和行业专 ...

  3. Vue2.0 less全局配置

    前言 再一次vue2.0的开发中,遇到这样的一个问题,使用less与处理器,封装了一套关于项目的主题,但是使用的时候,main.js中引入后依然不能直接使用定义的@theme-bg等less定义的颜色 ...

  4. 《FDTD electromagnetic field using MATLAB 》读书笔记001-差商种类

    有限差分就是用差商代替微商,有3钟: 1.向前差商 2.向后差商 3.中心差商 上面三张途中虚线就是函数在x的精确微商(偏导数),直线就是用来代替精确 微商的差商格式.

  5. [Qt] QLineEdit 仿QQ签名框

    今天鼓捣了半天,终于实现了自定义Qt中的QlineEdit控件的大致效果. 这个问题对于新手而言,主要有以下几个难点: 1.继承QLineEdit控件 2.QSS设置QLineEdit的相关样式,可以 ...

  6. 458 - The Decoder & C语言gets函数,字符输出输出 & toascii()

    Write a complete program that will correctly decode a set of characters into a valid message. Your p ...

  7. Linux内核调试

    1.控制台优先级配置cat /proc/sys/kernel/printk6 4 1 76是控制台的优先级,打印信息的优先级要比它高才能打印出.4是默认的优先级cat /var/log/message ...

  8. QLoo graphql engine 学习一 基本试用(docker&&docker-compose)

      说明:使用docker-compose 进行安装 代码框架 使用命令行工具创建 qlooctl install docker qloo-docker 运行qloo&&gloo 启动 ...

  9. 使用xUnit为.net core程序进行单元测试(2)

    第一部分: http://www.cnblogs.com/cgzl/p/8283610.html 下面有一点点内容是重叠的.... String Assert 测试string是否相等: [Fact] ...

  10. java内存上堆和栈的一些理解

    多线程上的基本类型:https://blog.csdn.net/championhengyi/article/details/76857401