• strlen,strcat,strcpy,strcpm 自实现


     1 #include <stdio.h>
     2 /*
     3 题目:4种字符串库函数自实现:1.mystrlen()测字符串长度  2.mystrcat()字符串链接 3.mystrcpy()字符串拷贝 4.mystrcmp()字符串比较
     4 思路:1.mystrlen()测字符串长度。测量字符串的实际长度返回一个整数值
     5       2.mystrcat()字符串链接。将第二个字符串链接到第一个字符串后面,组成一个新串,返回新串的首地址(也可不返回)。
     6       3.mystrcpy()字符串拷贝。将第二个字符串拷贝至第一个字符串中。前提是第一个字符串的长度大于第二个字符串的长度,返回新串的首地址(也可不返回)
     7       4.mystrcmp()字符串比较。两个字符串每个字符逐个比较,全部相同返回他们的差值,此时差值正好为0
     8         如果第一个字符串某一个字符比第二个字符串ascii大或者小 则返回他们的差值。大的时候差值>0 小的时候差值<0
     9 */
    10 
    11 //1.测字符串长度
    12 int mystrlen(char *p)
    13 {
    14     int len = 0;
    15     while(*p++)
    16         len++;
    17     return len;
    18 }
    19 //2.字符串链接
    20 void mystrcat(char *p1,char *p)
    21 {
    22     while(*p1)p1++;
    23     while(*p1++=*p++);
    24 }
    25 
    26 //3.字符串拷贝
    27 void mystrcpy(char *p1,char *p)
    28 {
    29     while(*p1++=*p++);
    30 }
    31 
    32 //4.字符串比较
    33 int mystrcmp(char *p1,char *p)
    34 {
    35     for(;*p1&&*p;p1++,p++)
    36     {
    37         if(*p1 == *p)
    38             continue;
    39         else 
    40             return *p1-*p;
    41     }
    42     return *p1-*p;
    43 }
    44 int main(void)
    45 {
    46     char *p = "sabcdefg";
    47     char p1[30] = "y1234";//字符串常量"y1234"存储在数据段的只读数据段(or)无法改变其数据,将其拷贝至字符数组中,就可以改变其数据。
    48     int len = 0;
    49     printf("len = %d
    ",mystrlen(p));
    50 
    51     mystrcat(p1,p);
    52     printf("p1 = %s
    ",p1);
    53     
    54     mystrcpy(p1,p);
    55     printf("p1 = %s
    ",p1);
    56 
    57     char *p2 = "fffffeee";
    58     int t = mystrcmp(p,p2);
    59     printf("%d
    ",t);
    60     if(t>0)
    61         printf("p>p2
    ");
    62     else if(t<0)
    63         printf("p<p2
    ");
    64     else
    65         printf("p == p2
    ");
    66 
    67     return 0;
    68 }
  • 相关阅读:
    c++ 文本处理
    c++ 汇编代码看内存分配
    c++ Message与Folder 拷贝 析构(没有动态空间的类)
    c++ StrVec等效vector(string)的类
    c++ istream_iterator ostream_iterator
    c++ 子类与父类之间的类型转换
    android中的空格表示
    ViewPager实现每隔两秒自动切换图片
    有关Android ListView根据项数的大小自动改变高度问题
    Android strings.xml中空格符的标识方法附xml特殊字符表示法
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9662420.html
Copyright © 2020-2023  润新知