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的字符'\0'。
C语言代码段的更多相关文章
- 浅谈c语言代码段 数据段 bss段
代码段.数据段.bss段 (1)编译器在编译程序的时候,将程序中的所有的元素分成了一些组成部分,各部分构成一个段,所以说段是可执行程序的组成部分. (2)代码段:代码段就是程序中的可执行部分,直观理解 ...
- C语言代码区错误以及编译过程
C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...
- jsp基础语言-jsp代码段
jsp代码段:是放在<% %>标记之间符合java语言规范的代码片段 格式:<% 代码段 %> 代码段中可以包含用于jsp变量和方法的声明.显示表达式.HTML以及调用Jav ...
- C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)
BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 : ...
- WPF自定义RoutedEvent事件代码段
今天在写东西的时候,发现常用的代码段里没有RoutedEvent的,因此,写了一个代码段,方便以后使用,顺便记录一下,如何做代码段. 1.在项目中新建一个XML文件,将扩展名修改为snippet. 2 ...
- Latex中插入C语言代码
Latex是一个文本排版的语言,能排版出各种我们想要的效果.而且用代码排版的优点是易于修改板式,因此在文本内容的排版时,Latex应用十分广泛. 当我们需要在Latex中插入代码时,就需要用到 \us ...
- 前端福利!10个短小却超实用的JavaScript 代码段
JavaScript正变得越来越流行,它已经成为前端开发的第一选择,并且利用基于JavaScript语言的NodeJS,我们也可以开发出高 性能的后端服务,甚至我还看到在硬件编程领域也出现了JavaS ...
- Visual Studio Code 添加设置代码段(snippet)
从VSCode发布以来就在关注,最近已经更新到版本0.10.8,已经支持了插件功能.日常使用编辑器已经由Sublime Text迁移到了VSCode.使用中遇到了这个问题,在网上也没搜到解决方案.记录 ...
- 在VS中自定义代码段
这个功能不怎么实用,但毕竟是VS存在的一个功能点嘛,知道一点也好!说它不怎么实用是有原因的,因为现在强大的VS编辑器拥有不计其数的插件,而且这些插件也有很多很强大的!比如Resharper,Code ...
随机推荐
- Day029 JDK8中新日期和时间API (二)
# JDK8中新日期和时间API (二) Instant介绍 Instant:时间线上的一个瞬时点. 这可能被用来记录应用程序中的事件时间 戳. 在处理时间和日期的时候,我们通常会想到年,月,日,时, ...
- Go以及调试工具dlv安装及使用
安装go wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz tar -C /usr/local -zxvf go1. ...
- Archlinux zsh终端美化 powerlevel10k配置
环境 Arch Linux + KDE Plasma 安装zsh yay -S zsh 更改默认终端 chsh -s /bin/zsh 安装oh-my-zsh-git archlinuxcn源有打好的 ...
- 实践指南-网页生成PDF
一.背景 开发工作中,需要实现网页生成 PDF 的功能,生成的 PDF 需上传至服务端,将 PDF 地址作为参数请求外部接口,这个转换过程及转换后的 PDF 不需要在前端展示给用户. 二.技术选型 该 ...
- docker部署安装流程第一版
docker部署安装流程第一版 1.以Dockerfile的方式进行构建docker 以cloud 新联盟为例 dockerfile from hub.c.163.com/library/maven ...
- scrapy异常状态码处理
scrapy异常状态码处理 在setting.py中加入 scrapy 的 state 默认只处理200到300之间 # 403状态的响应不被自动忽略,对403 的响应做个性化处理 HTTPERRO ...
- grasshopper之python电池执行逻辑
在grasshopper中,需要导入的包虽然不多,但是相当绕人,所要实现的操作往往找不到,暂时做个分类. 双击输入 python 电池: # 导入rhino 包 import Rhino #Rhino ...
- TVM优化Deep Learning GPU算子
TVM优化Deep Learning GPU算子 高效的深度学习算子是深度学习系统的核心.通常,这些算子很难优化,需要HPC专家付出巨大的努力. 端到端张量IR / DSL堆栈TVM使这一过程变得更加 ...
- CVPR2020论文解析:视频语义检索
CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...
- 嵌入式Linux设备驱动程序:发现硬件配置
嵌入式Linux设备驱动程序:发现硬件配置 Embedded Linux device drivers: Discovering the hardware configuration Interfac ...