zoukankan      html  css  js  c++  java
  • C++字符串处理函数【自写】

    #include<iostream>  
    #include<stdlib.h> 
    #include<string>
    #include <assert.h>
    using namespace std;
    
    
    //连接字符串                被copy的要用const
    char *my_strcat(char *d, const char *t)
    {
        char *address = d;
        while (*d != '')  //将原字符串指针移到最后一个字符
            d++;
        while ((*d++ = *t++) != '')   //开始复制
            NULL;
        return address;  //返回指针
    }
    
    //字符串的复制          同样被复制的为了安全  要用const
    char *my_strcpy(char *d,const char *t)
    {
        char *str = d;
        while (*t != '')
        {
            *d = *t;
            *d++,*t++;
        }
             //复制到结束为 
        return str;
    }
    
    //从第n个字符开始复制
    char *my_strncpy(char *dest, char *t, int n)
    {
        char *str = dest;      //用指针str来操作
        while (n&&*t != '') {
            *dest = *t;
            ++*dest, ++*t;
            n--;
        }
        return str;
    }
    
    //小写转大写
    char *my_strup(char *dest)
    {
        char *str = dest;
        while (*dest != '')
        {                    //判断是否输的确实是小写 
            if (*dest >= 'a' && *dest <= 'z')
                *dest -= 32;
            dest++;
        }
        return str;
    }
    
    //大写转小写
    char *my_strlwr(char *dest)
    {
        char *str = dest;
        while (*dest != '')
        {           //判断是否输的为大写
            if (*dest >= 'A' && *dest <= 'Z')
                *dest += 32;
            dest++;
        }
        return str;
    }
    
    //比较字符比较大小     被比较的字符串都要用使用const
    int my_strcmp(const char *s1, const char * s2)  
    { 
        while (*s1&&*s2&&*s1 == *s2)
        {
            s1++;
            s2++;
        }
        return (*s1 - *s2);
        //如果相等 返回0  大于 返回正  小于 返回负
    }
    
    
    
    
    int main()
    {
        char a[100],b[100];
        cin >>a>> b;
        char *p1 = a, *p2 = b;
    
        //连接字符串
        //cin >> a >> b;
        //my_strcat(p1, p2);
    
        //把b复制到a
        //my_strcpy(p1, p2);
        
        //从第n开始复制
        //my_strncpy(p1, p2, 2);
    
        //cin >> b;
        //cout << my_strcmp(p1, p2);
    
        //小写转大写 大写转小写
        //cin >> a;
        //my_strup(p1);
        //cout << a<<endl;
        //my_strlwr(p1);
        //cout << a << endl;
    
        cout<<my_strcmp(a, b)<<endl;
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    __module__ 和 __class__
    __str__ 和 __repr
    __getitem__ __setitem__ __delitem__ 使用
    授权
    __getattr__ __delattr__ __setattr__ __getattribute__使用(重写python提供的错误信息)
    __import__
    hasattr getattr setattr delattr --> (反射)
    类三大特性(继承 多态 封装)
    静态方法@staticmethod
    类方法@classmethod
  • 原文地址:https://www.cnblogs.com/Stephen-Jixing/p/9866705.html
Copyright © 2011-2022 走看看