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

字符查找函数:

  1. char *my_strchr(const char *s,int c)
  2. {
  3. char *pTemp = s;
  4.  
  5. do
  6. {
  7. if(*pTemp == c)
  8. {
  9. return pTemp;
  10. }
  11. }
  12. while(*pTemp++);
  13.  
  14. return NULL;
  15. }

字符串比较函数:

  1. int my_strcmp(const char *s1,const char *s2)
  2. {
  3. char *pTemp1 = s1;
  4. char *pTemp2 = s2;
  5.  
  6. while(*pTemp1 && *pTemp2 && ((*pTemp1++) == (*pTemp2++)));
  7. //{
  8. /*return ((*--pTemp1) - (*--pTemp2));*/
  9. //}//
  10.  
  11. if(*pTemp1 && *pTemp2)
  12. {
  13. return ((*--pTemp1) - (*--pTemp2));
  14. }
  15.  
  16. if(*pTemp1)
  17. {
  18. return *pTemp1;
  19. }
  20.  
  21. if(*pTemp2)
  22. {
  23. return -*pTemp2;
  24. }
  25.  
  26. return ;
  27.  
  28. }

字符串查找函数:

  1. char *my_strstr(const char *haystack,const char * needle)
  2. {
  3. char *pTempSrc = haystack;
  4.  
  5. char *pTempDes = needle;
  6.  
  7. do
  8. {
  9. if(*pTempSrc != *pTempDes++)
  10. {
  11. pTempDes = needle;
  12. }
  13.  
  14. if(!*pTempDes)
  15. {
  16. return pTempSrc-(pTempDes-needle)+;
  17. }
  18. }while(*pTempSrc++);
  19.  
  20. return NULL;
  21.  
  22. }

内存比较函数:

  1. int my_memcmp(const void *s1,const void *s2,size_t n)
  2. {
  3. char *pTemp1 = s1;
  4. char *pTemp2 = s2;
  5.  
  6. while(n-- > )
  7. {
  8. if(*pTemp1++ != *pTemp2++)
  9. {
  10. break;
  11. }
  12. }
  13.  
  14. if(*pTemp1 && *pTemp2)
  15. {
  16. return ((*--pTemp1) - (*--pTemp2));
  17. }
  18.  
  19. if(*pTemp1)
  20. {
  21. return *pTemp1;
  22. }
  23.  
  24. if(*pTemp2)
  25. {
  26. return -*pTemp2;
  27. }
  28.  
  29. return ;
  30.  
  31. }

字符串变成数字函数:

  1. int my_atoi(const char *nptr)
  2. {
  3. char *pTemp = nptr;
  4.  
  5. int sum = ;
  6. unsigned flag = ;
  7.  
  8. if(*pTemp == '-')
  9. {
  10. flag = ;
  11. pTemp++;
  12. }
  13.  
  14. do
  15. {
  16. if((*pTemp >= '') && (*pTemp <= ''))
  17. {
  18. sum *= ;
  19. sum += (*pTemp - '');
  20. }
  21. else
  22. {
  23. return -;
  24. }
  25.  
  26. }while(*++pTemp);
  27.  
  28. return (flag == ? sum : -sum);
  29.  
  30. }

数字变成字符串函数:

  1. int my_itoa(int val,char *ret)
  2. {
  3. char *pTemp = ret;
  4. int bits = ;
  5.  
  6. int flag = ;
  7.  
  8. if(val < )
  9. {
  10. flag = ;
  11. val = -val;
  12.  
  13. pTemp++;
  14. ret[] = '-';
  15. }
  16. //printf("val %d\n",val);
  17.  
  18. while(val)
  19. {
  20. (*pTemp++) = val% + '';
  21. bits++;
  22. //printf("%d \n",val);
  23. val = val / ;
  24.  
  25. }
  26.  
  27. *pTemp = '\0';
  28.  
  29. //printf("%s \n",ret);
  30.  
  31. //fan zhuan
  32. int i = ;
  33. int temp = ;
  34. for( i = ; i < bits/; i++)
  35. {
  36. temp = ret[i+];
  37. ret[i+] = ret[bits-i--];
  38. ret[bits-i--] = temp;
  39. }
  40.  
  41. return ;
  42.  
  43. }

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

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. 改变Vim保存文件路径

    1. vim 有个cd命令.用来更改当前文件夹.:cd sth进入sth文件夹.这样新文件保存之后就在当前文件夹.不过如果你打开一个已经保存的文件后然后更改当前文件夹是不会改变保存路径的.你必须为:w ...

  2. POJ 3414 Pots 暴力,bfs 难度:1

    http://poj.org/problem?id=3414 记录瓶子状态,广度优先搜索即可 #include <cstdio> #include <cstring> #inc ...

  3. POJ 3126 Prime Path 广度优先搜索 难度:0

    http://poj.org/problem?id=3126 搜索的时候注意 1:首位不能有0 2:可以暂时有没有出现在目标数中的数字 #include <cstdio> #include ...

  4. Java web.xml 配置技巧—动态欢迎页地址

    我们的 Java   Web  项目在配置web.xml 欢迎页地址默认是index.html .index.jsp ,不知道有人注意过没有,如果我要配置成/index/user.action  或者 ...

  5. tortoiseGIT保存用户名密码

    虽然GIT可以使用SSH来免去输入用户名密码的麻烦,但是更多的人我相信还是比较喜欢使用tortoiseGIT. 使用HTTP模式的代码库可以通过保存用户名密码的方式来免去重复输入的麻烦. 首先安装gi ...

  6. timer Compliant Controller project (3)--bom and sch

    After optimization of structural solution , I  must prepare the bom and  drawing circuit diagram as ...

  7. ieee80211 phy1: Failed to select rate control algorithm

    /************************************************************************ * ieee80211 phy1: Failed t ...

  8. test20181021 快速排序

    题意 对于100%的数据,\(n,m \leq 10^5\) 分析 考场上打挂了. 最大值就是后半部分和减前半部分和. 最小是就是奇偶相减. 方案数类似进出栈序,就是catalan数 线段树维护即可, ...

  9. 集合(List、Set、Map)

    List,Set是继承自Collection接口,Map不是 public interface List<E> extends Collection<E> { public i ...

  10. 记录一次MyEclipse工程搭建的辛酸

    一个历史项目,使用的是Myeclipse6.5版本:这一天就砸在这个项目了. 调通web项目:内置的是tomcat插件,貌似和eclipse的server版的还不太一样. 长这个样子: