c++实现strcpy、strcat、strcmp、strlen

 

实现代码如下:

 

[cpp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. /*************************************************************************  
  2.     > File Name: testString.h 
  3.     > Author: qiaozp  
  4.     > Mail: qiaozongpeng@163.com  
  5.     > Created Time: 2014-9-30 11:21:15 
  6.  ************************************************************************/   
  7. #include <iostream>  
  8. #include <string.h>  
  9. using namespace std;  
  10.   
  11. //实现字符串拷贝  
  12. char* _strcpy(char* src, char* dst)  
  13. {  
  14.     if (src == NULL)  
  15.     {  
  16.         return NULL;  
  17.     }  
  18.     char* tmp = src;  
  19.     int i = 0;  
  20.     while (*tmp)  
  21.     {  
  22.         dst[i++] = *(tmp++);  
  23.     }  
  24.     dst[i] = '\0';  
  25.     return dst;  
  26. }  
  27.   
  28. //实现字符串追加  
  29. char* _strcat(char* dst, char* src)  
  30. {  
  31.     if (src == NULL)  
  32.     {  
  33.         return NULL;  
  34.     }  
  35.   
  36.     char* tmp = src;  
  37.     int pos = strlen(dst);  
  38.     while (*tmp)  
  39.     {  
  40.         dst[pos++] = *(tmp++);  
  41.     }  
  42.     dst[pos] = '\0';  
  43.   
  44.     return dst;  
  45. }  
  46.   
  47. //实现获取字符串长度  
  48. int _strlen(char* sz)  
  49. {  
  50.     char* tmp = sz;  
  51.     int i = 0;  
  52.     while (*tmp)  
  53.     {  
  54.         ++i;  
  55.         ++tmp;  
  56.     }  
  57.     return i;  
  58. }  
  59.   
  60. //实现字符串比较  
  61. int _strcmp(char* srcA, char* srcB)  
  62. {  
  63.     char* cmpA = srcA;  
  64.     char* cmpB = srcB;  
  65.     //1 按位比较大小  
  66.     while ((*cmpA) && (*cmpB))  
  67.     {  
  68.         if (*cmpA = *cmpB)  
  69.         {  
  70.             ++cmpA;  
  71.             ++cmpB;  
  72.             continue;  
  73.         }  
  74.         else if (*cmpA > *cmpB)  
  75.         {  
  76.             return 1;  
  77.         }  
  78.         else  
  79.         {  
  80.             return -1;  
  81.         }  
  82.     }  
  83.       
  84.     //2 比较长度  
  85.     return _strlen(srcA) - _strlen(srcB);  
  86. }  
  87.   
  88. int main()  
  89. {  
  90.     char* p = "you are a student.";  
  91.     char e[30] = {0};  
  92.     if (_strcpy(p, e) == NULL)  
  93.     {  
  94.         return -1;  
  95.     }  
  96.     cout << "拷贝后的字符串:" << e << endl;  
  97.   
  98.   
  99.     if (_strcat(e, "name : qiao") == NULL)  
  100.     {  
  101.         return -1;  
  102.     }  
  103.     cout << "追加后的字符串:" << e << endl;  
  104.   
  105.     cout << _strlen(p) << endl;  
  106.   
  107.     cout << _strcmp("qiao", "qiap") << endl;  
  108. }  

posted on 2016-07-18 10:51  c++kuzhon  阅读(264)  评论(0)    收藏  举报

导航