头文件

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <string.h>
    4. #include <stdbool.h>
    5. // 计算字符串长度 strlen
    6. int Mystrlen(const char * str);
    7. // 字符串对比 strcmp
    8. bool Mystrcmp(char * str1, char * str2);
    9. // 字符串拷贝 strcpy
    10. bool Mystrcpy(char * str1, char * str2,int length);
    11. // 字符串拼接 strcat
    12. bool Mystrcat(char * str1, char * str2);
    13. //字符串半段是否包含子串 ,并且返回第一次出现的位置 strstr

    主文件

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <string.h>
    4. #include "test.h"
    5. int Mystrlen(const char * str) //计算字符长度
    6. {
    7. const char * eos =str;
    8. while(*eos++); //取值循环找到 0
    9. return (eos - str -1);
    10. }
    11. bool Mystrcmp(char * str1, char * str2) //判断字符是否相等
    12. {
    13. int len1=Mystrlen(str1); //Mystrlen 计算字符串长度
    14. int len2=Mystrlen(str2);
    15. if(len1!=len2){ //先判断字符串长度 相等
    16. return false;
    17. }
    18. for(size_t i=0; i< len1;i++)
    19. {
    20. if(*str1 != *str2)
    21. {
    22. return false;
    23. }
    24. *str1++;
    25. *str2++;
    26. }
    27. return true;
    28. }
    29. bool Mystrcpy(char * str1,char *str2,int length) //字符串拷贝
    30. {
    31. for(size_t i=0;i<length;i++)
    32. {
    33. str1[i]=str2[i];
    34. }
    35. str1[length]='\0';
    36. return true;
    37. }
    38. bool Mystrcat(char * str1, char * str2) //字符串拼接
    39. {
    40. int a=Mystrlen(str1);
    41. int b=Mystrlen(str2);
    42. for(size_t i =0; i<b;i++)
    43. {
    44. str1[a + i]=str2[i];
    45. }
    46. str1[a + b]='\0';
    47. return true;
    48. }
    49. int main(){
    50. // char *str = "abcdef";
    51. // int nRet = Mystrlen(str);
    52. // printf("%d\n",nRet);
    53. // char *str1 ="abcdef";
    54. // char *str2 ="abcdefg";
    55. // bool nRet = Mystrcmp(str1,str2);
    56. // if(nRet)
    57. // {
    58. // printf("_____-true-_____\n");
    59. // }
    60. // else
    61. // {
    62. // printf("_____-flase-_____\n");
    63. // }
    64. // char * str1 = "abcdefg";
    65. // char * str2= "abcdefg";
    66. // char str3[100];
    67. // Mystrcpy(str3,str1,10);
    68. // printf("%s",str3);
    69. char * str1 = "abcdefg";
    70. char * str2= "abcdefgh";
    71. char str3[100]={0}; //需要初始化
    72. Mystrcat(str3,str1);
    73. Mystrcat(str3,str2);
    74. printf("%s\n",str3);
    75. system("pause");
    76. return 0;
    77. }

    image.png