细节之strcat
写代码也这么多年了,有些非常基础的东西却让我差点栽跟头;
有如下一种场景的需求代码:
char tmp;
char input[];
memset(input, , );
while(*ptr != ) // ptr是得到了某块全局内存的
{
tmp = *ptr;
ptr++;
strcat(input, &tmp);
}
看起来感觉没啥问题,编译通过,功能正常,额... ,开始是正常啦,多操作几个来回,机器就跑飞了;
刚开始根本没怀疑这里,最后找了找,发现是这里的问题,看到在这个最基本的函数上面栽跟头,感觉就是年纪大了!
C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
这操作的是字符串啊,眼前黑。
所以得先格式化成字符串后再使用
C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
sprintf(&tmp, "%c", *ptr);// tmp = *ptr;
细节之strcat的更多相关文章
- redis数据结构存储SDS设计细节(redis的设计与实现笔记)
redis虽说是用C语言开发的,但是redis考虑了性能.安全性.效率性.功能等要,redis底层存储字符串实现,自己实现了名为简单动态字符串(Simple dynamic string)简称SDS的 ...
- c/c++面试题(3)strcat/strcmp/strlen/strcpy的实现
1.编写一个函数实现strlen以及strcpy函数. strcpy函数. 后面的字符串拷贝到一个字符数组中,要求拷贝好的字符串在字符数组的首 地址,并且只拷贝到'\0'的位置.原型是 char* m ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- C语言的一些常见细节
C语言的一些常见细节 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个 ...
- 【Xcode学C-4】进制知识、位运算符、变量存储细节以及指针的知识点介绍
一.进制知识 (1)默认是十进制.八进制前面加0.即int num1=015;是13.十六进制前面加0x/0X.即int num1=0xd.结果是13.二进制前面是0b/0B,即int num1=0b ...
- 03--(二)编程实践中C语言的一些常见细节
编程实践中C语言的一些常见细节(转载) 对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所 ...
- redis数据存储的细节
redis是一个K-V NoSql非关系型数据库,redis有物种数据类型,分别是String,Hash,list,set,zset:这五种类型都是针对K-V中的V设计的. 1.总体介绍:关于redi ...
- Vue.js 和 MVVM 小细节
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- vue2.0实践的一些细节
最近用vue2.0做了个活动.做完了回头发现,好像并没有太多的技术难点,而自己好像又做了比较久...只能说效率有待提升啊...简单总结了一些比较细节的点. 1.对于一些已知肯定会有数据的模块,先用一个 ...
随机推荐
- python学习---python基础一
一.Python介绍 1.python出生与应用 python的创始人是吉多.范罗苏姆(龟叔).1989年圣诞在家闲着无聊,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 python崇尚的是 ...
- leetcode232
public class MyQueue { Stack<int> S = new Stack<int>(); /** Initialize your data structu ...
- Spring cloud config-client 爬坑
配置文件 找不到属性 Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'from' in st ...
- 6 MySQL--表--完整性约束
参考:https://www.cnblogs.com/alice-bj/p/8824693.html 完整性约束: http://www.cnblogs.com/linhaifeng/articles ...
- es6 class 了解
ES6之class ES5中通常通过构造函数和原型的组合形式来创建对象.在ES6中引入class作为对象模板, Class定义语法 class point{ constructor(x,y){ thi ...
- 【转】关于BeanUtils.copyProperties的用法和优缺点
一.简介: BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对Jav ...
- Taints和Tolerations
Taints和Tolerations和搭配使用的,Taints定义在Node节点上,声明污点及标准行为,Tolerations定义在Pod,声明可接受得污点. 可以在命令行为Node节点添加Taint ...
- python变量作用域
[python变量作用域] 几个概念: python能够改变变量作用域的代码段是def.class.lamda. if/elif/else.try/except/finally.for/while 并 ...
- What I'm Researching
[What I'm Researching] 1.C++11 2.NLP 3.android dev 4.warm up 5.PageRank
- ConcurrentHashMap的简单理解
一.效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下.因为当一个线程访问HashTable的同 ...