Chinaunix首页 | 论坛 | 博客
  • 博客访问: 603972
  • 博文数量: 113
  • 博客积分: 2554
  • 博客等级: 少校
  • 技术积分: 1428
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-21 19:53
文章分类

全部博文(113)

文章存档

2014年(1)

2013年(2)

2012年(94)

2011年(16)

分类: LINUX

2012-03-05 16:48:08

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. void atoA_1(char *ch);//字母大小写转换,不使用函数
  4. void atoA_2(char *ch);//使用函数
  5. int rabbit(int role);//兔子问题

  6. int _strcmp(const char *str1,const char *str2);

  7. char *_strcpy(char *dst,const char *src);


  8. int _strstr(char *dst, char *src);


  9. int main(int argc,char *argv[])
  10. {
  11.     char p[] = "PANhong";
  12.     char *tmp;
  13.     atoA_2(p);
  14.     printf("%s\n",p);
  15.     printf("rabbit %d\n",rabbit(10));
  16.     printf("%d\n",_strcmp("panhong","panHONG"));

  17.     tmp = _strcpy(tmp,p);
  18.     printf("%s\n",tmp);

  19. }






  20. void atoA_1(char *ch)
  21. {
  22.     while(*ch != '\0')
  23.     {
  24.         if(*ch>='A' && *ch<='Z')
  25.             *ch +=32;
  26.         else
  27.             *ch -=32;
  28.         ch++;
  29.     }
  30. }

  31. void atoA_2(char *ch)
  32. {
  33.     while(*ch != '\0')
  34.     {
  35.         if(isupper(*ch))
  36.             *ch = tolower(*ch);
  37.         else
  38.             *ch = toupper(*ch);
  39.         ch++;
  40.     }
  41. }


  42. int rabbit(int role)//兔子白天爬出5米,晚上又掉下去2米。问给定洞的深度,兔子要爬多少天
  43. {
  44.     int i=0;
  45.     int sum = 0;
  46.     while(1)
  47.     {
  48.         if(sum+5>=role)
  49.             return (i+1);
  50.         else
  51.         {
  52.             sum = sum +3;
  53.             i++;
  54.         }
  55.     }
  56. }


  57. int _strcmp(const char *str1,const char *str2)
  58. {
  59.     int ret = 0;
  60.     while(!(ret=*str1-*str2) && *str2)
  61.     {
  62.         str1++,str2++;
  63.     }
  64.     return (ret);
  65. }

  66. char *_strcpy(char *dst,const char *src)
  67. {
  68.     char *tmp = dst;
  69.     while((*tmp++=*src++) != '\0');
  70.     return (dst);
  71. }

  72. /*****************************************************************************
  73. * 功能:计算字符串长度
  74. * 返回:字符串长度值
  75. ******************************************************************************/
  76. int _strlen(char *str)
  77. {
  78.     int i;
  79.     for ( i = 0; str[i] != '\0'; i++ ); /* 用循环计算长度 */
  80.     return i;
  81. }


  82. /*****************************************************************************
  83. * 功能:在字符串 dst 中查找字符串 src
  84. * 返回:若找到,返回 src 在 dst 中开始出现的下标;否则返回 -1
  85. ******************************************************************************/
  86. int _strstr(char *dst, char *src)
  87. {
  88.     int end,i,j;

  89.     end = _strlen(dst) - _strlen(src); /* 计算结束位置 */

  90.     if ( end > 0 ) /* 子字符串小于字符串 */
  91.     {
  92.         for ( i = 0; i <= end; i++ )
  93.             /* 用循环比较 */
  94.             for ( j = i; dst[j] == src[j-i]; j++ )
  95.                 if ( src[j-i+1] == '\0' ) /* 子字符串字结束 */
  96.                     return i; /* 找到了子字符串 */
  97.     }

  98.     return -1;
  99. }
阅读(869) | 评论(0) | 转发(0) |
0

上一篇:测系统位数

下一篇:高精度乘法

给主人留下些什么吧!~~