zoukankan      html  css  js  c++  java
  • C语言代码段

    /* 功  能:将str字符串中的oldstr字符串替换为newstr字符串
     * 参  数:str:操作目标 oldstr:被替换者 newstr:替换者
     * 返回值:返回替换之后的字符串
     */
    char *strrpc(char *str,char *oldstr,char *newstr){
        char bstr[strlen(str)];//转换缓冲区
        memset(bstr,0,sizeof(bstr));
        for(int i = 0;i < strlen(str);i++){
            if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串
                strcat(bstr,newstr);
                i += strlen(oldstr) - 1;
            }else{
                strncat(bstr,str + i,1);//保存一字节进缓冲区
            }
        }
     
        strcpy(str,bstr);
        return str;
    }
    // -----------------------------------------------------------------
    // 函数功能: 字节数组转字符串类型
    // 函数名称: hexbyte_to_hex_str
    // 参数1   : src 源字符串
    // 参数2   : obj 目标字节数组
    // 说明    : {0x01,0x03,0x03,x04} --> "01020304"
    // 返回值  : 1 成功
    // -----------------------------------------------------------------
    static int hexbyte_to_hex_str (char *src, char *obj, uint16_t length)
    {
        for (int i = 0; i < length; i++)
        {
            sprintf (obj, "%02X", src[i]);
            obj += 2;
        }
        return 1;
    }
    // -----------------------------------------------------------------
    // 函数功能: hex字符串转byte数组
    // 函数名称: hexbyte_to_hex_str
    // 参数1   : src 源字符串
    // 参数2   : obj 目标字节数组
    // 说明    : "01020304" --> {0x01,0x03,0x03,x04} 或 "01 02 03 04"->{0x01,0x03,0x03,x04}
    // 返回值  : 1 成功
    // -----------------------------------------------------------------
    static int hexstr_to_hexbyte (char *src, char *obj, uint16_t length)
    {
        char h1, h2;
        uint8_t  s1, s2;
        int i;
    
        for (i = 0; i < length; i++)
        {
            h1 = src[2 * i];
            h2 = src[2 * i + 1];
    
            s1 = toupper (h1) - 0x30;
            if (s1 > 9)
                s1 -= 7;
            s2 = toupper (h2) - 0x30;
            if (s2 > 9)
                s2 -= 7;
            obj[i] = s1 * 16 + s2;
        }
        return 1;
    }
    
    // 函数封装
    TypeFunc_t TypeFunc =
    {
        hexbyte_to_hex_str, //HexToStr
        hexstr_to_hexbyte,  //StrToHex
    };
    // char类型转化成int类型
    char a = '9';
    int b;
    b = a - '0';    //b = 9
    
    // int类型转化成char类型
    int a = 9;
    char b;
    b = a + '0';    //b = '9'

    C语言中单引号和双引号的区别 

    1、含义不同

    用 单引号引起的一个字符实际上代表一个 整数,整数值对应于该字符在编译器采用的字符集中的序列值。而一般我们的编译器采用的都是 ASCII字符集。因此's'的含义其实和十进制数115的含义是一致的。
    而用 双引号引起的字符串,代表的是一个指向无名数组起始字符的 指针。 

    2、大小不同

    用 单引号引起的一个字符大小就是 一个字节。
    而用 双引号引起的字符串大小是 字符的总大小+1,因为用双引号引起的字符串会在字符串末尾添加一个二进制为0的字符''。
  • 相关阅读:
    Python-08-内置函数
    Python-07-高阶函数
    Python-06-函数
    Python-05-字符串格式化
    Python-04-数据结构
    Python-03-流程控制
    yum-config-manager命令找不到的解决方法
    Centos7 yum 出现could not retrieve mirrorlist 最终解决方案
    后台皮肤保存
    基于Docker的Mysql主从复制搭建
  • 原文地址:https://www.cnblogs.com/kerwincui/p/14668730.html
Copyright © 2011-2022 走看看