c语言实现常见字符串函数strchr strstr strcmp atoi itoi(字符串换成整数)
好久没有更新博客了,刚刚出炉练练手的程序如下,很简单,没有考虑过多复杂的东西,有好的想法,欢迎指教:
字符查找函数:
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(字符串换成整数)的更多相关文章
- PHP字符串函数之 strstr stristr strchr strrchr
strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...
- 字符串函数 mysql 和sqlserver 中对于字符串的常用函数和区别
1. 对于字符串大小写的统一 mysql和sqlserver中都有同名函数lower()和upper(),但是mysql中还有另外一对函数,达到同样的目的,lcase()和ucase(),也就是英文中 ...
- 微信小程序 功能函数 把数字1,2,3,4换成春,夏,秋,冬
let season =‘1,2,3’; // console.log(season.length) if (season){ if (season.length==1){ seasonChe1=se ...
- C语言-字符串函数的实现(五)之strstr
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...
- C语言字符串函数
strtok() 字符串分割函数strstr() 字符串查找函数 范例 #include <string.h> main() { char * s = " ...
- C语言-字符串函数的实现(一)之strlen
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...
- C语言-字符串函数的实现(二)之strcpy
C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...
- PHP函数积累总结(Math函数、字符串函数、数组函数)
Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...
- php常用的字符串函数
addslashes -- 使用反斜线引用字符串 chr -- 返回相对应于 ascii 码值所指定的单个字符. chunk_split -- 将字符串分割成小块 count_chars -- 返回 ...
随机推荐
- 201621123006 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 05
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2287] 版本控制:https://git.coding.net/liuyy08 ...
- UE4 游戏中csv配置文件使用
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/76549463 作者:ca ...
- jenkins配置java
# JDK版本 java -version # JDK目录 echo $JAVA_HOME # jenkins配置
- Linux内核gpiolib注册建立过程
1.相关的数据结构 struct s3c_gpio_chip { // 这个结构体是三星在移植gpiolib时封装的一个结构体 用来描述一组gpio端口信息 struct gpio_chip chip ...
- 基于http协议的加密传输方案
最近公司需要通过公网与其它平台完成接口对接,但是基于开发时间和其它因素的考虑,本次对接无法采用https协议实现.既然不能用https协议,那就退而求其次采用http协议吧! 那么问题来了!在对接的过 ...
- C#对象的三种序列化
要让一个对象支持.Net序列化服务,用户必须为每一个关联的类加上[Serializable]特性.如果类中有些成员不适合参与序列化(比如:密码字段),可以在这些域前加上[NonSerialized]特 ...
- 【转】VC++ 也有 Refactoring 功能了
原文网址:http://blog.csdn.net/yapingxin/article/details/18923095 分类: C++2014-02-04 14:00 2688人阅读 评论(0) 收 ...
- nginx 正则
syntax: location [=|~|~*|^~] /uri/ { … }语法:location [=|~|~*|^~] /uri/ { … } 优先级从高到低:=.~ .~*.^~.空 def ...
- 洛谷3343(ZJOI2015)地震后的幻想乡
题目:https://www.luogu.org/problemnew/show/P3343 1.那个时间与边的大小排名有关,所以需要求一下最大边的期望排名就行. 2.期望排名是这样算的:(排名为1的 ...