c++
艺丢丢
开心生活
展开
-
取逗号之间的字符
有一段字符串,如 “sd,qwq,ewrew”我们要依逗号为分割符,把这串字符串分别取出来sd qwq werew。 我们可以使用strtok函数。函数原型:char *strtok(char s[], const char *delim);strtok函数说明:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。首次调用时,s指向要分解的字符串,之原创 2015-07-29 17:55:37 · 1609 阅读 · 0 评论 -
替换switch操作之转移表
switch case给定一个操作符,就会选择执行相应的程序,如果选择有很多,就不得不写很多的case,这样子就非常的长,代码臃肿。如一个计算器的代码:switch(oper){case add:...case sub:....case mul:...case div:......下面使用改进方法转移表:double add(double,doubl原创 2015-09-16 11:30:38 · 1040 阅读 · 0 评论 -
c++使用c代码
比如你的c代码有common.c和 common.h,你的c++代码test.cpp需要调用common.c中的函数接口,你直接#include,这样子会出现报错,无法解析的外部符号什么的,这时候,你需要在test.cpp中包含common.h的头文件时加上extern "C"{#include "common.h"};这样就可以使用了。原因:C代码中如何调用C++ C原创 2015-09-10 16:31:45 · 811 阅读 · 0 评论 -
关于C++内存中字节对齐问题的详细介绍
一、什么是字节对齐计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。二、对齐的作用和原因:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地转载 2015-08-19 17:55:36 · 481 阅读 · 0 评论 -
基于C++中常见内存错误的总结
在系统开发过程中出现的bug相对而言是比较好解决的,花费在这个上面的调试代价不是很大,但是在系统集成后的bug往往是难以定位的bug(最好方式是打桩,通过打桩可以初步锁定出错的位置,如:进入函数前打印日志,离开时再次打印日志)。而这些难以定位的bug基本分为2类:内存错误和并非问题。1、内存泄露如果在堆栈上分配的内存使用完成后没有释放就会造成内存泄露。少量的内存泄露不至于让程序崩溃,但转载 2015-08-19 17:53:22 · 716 阅读 · 0 评论 -
strncpy函数
strncpy函数说明:1.函数原型char*strncpy(char *dest,char *src,size_t n);2.(c/c++)复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。如果src的长度小于n个字节,则以NULL填充dest直到复制原创 2015-08-31 11:18:49 · 1338 阅读 · 0 评论 -
替换一些字符
把一串字符串中的某些段的字符替换成其他的字符,下面是把test字符段替换成my字符。 代码如下: char *buf=”CREATE TABLE test(id INTEGER NOT NULL PRIMARY KEY autoincrement,evidenceid INTEGER,type INTERGER,filepath varchar2(260),filename varchar2(2原创 2015-07-27 13:42:21 · 1042 阅读 · 0 评论 -
获取公网IP
HttpGet(LPCTSTR lpszFullUrl, char *pBuffer, int iBufferSize){if (lpszFullUrl == NULL)return false;HINTERNET hNet = ::InternetOpen(_TEXT("Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/2010原创 2015-08-13 14:35:12 · 534 阅读 · 0 评论 -
字符函数库
c++从c语言继承了一个与字符相关的,非常方便的函数软件包,它可以简化诸如确定字符是否为字母,数字,标点等工作。这些函数原型在头文件cctype中定义。下面就是这些函数的说明。原创 2015-08-25 20:57:29 · 444 阅读 · 0 评论 -
把一串字符串大写转成小写
tolower函数:功 能: 把字符转换成小写字母,非字母字符不做出处理头文件:在VC6.0可以是ctype.h或者stdlib.h,常用ctype.h用 法: int tolower(int c);说明:和函数int _tolower( int c );功能一样,但是_tolower在VC6.0中头文件要用ctype.h实例:#include #inclu原创 2015-07-29 18:00:58 · 1351 阅读 · 0 评论 -
获取当前工作路径
获取当前工作路径函数原型:char *_getcwd( char *buffer, int maxlen );功 能:获取当前工作目录参数说明:_getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数maxlen为buffer的空间大小。返 回 值:成功则返回当前工作目录,失败返回 FALSE。#include #原创 2015-07-28 14:01:31 · 777 阅读 · 0 评论 -
遍历一个目录下的文件,并把文件名保存在vector中
搜索一个文件目录及其下一级目录中某种类型的文件。把他们放进一个vector中。#include #include #include #include using namespace std;void GetAllFileInfo(LPCTSTR path, vector &filesPathVector){ //找到第一个文件 _tfindda原创 2015-07-27 14:20:32 · 2164 阅读 · 0 评论 -
获取文件的后缀名
使用API PathFindExtension实现获取给定一个文件,直接获取文件的后缀名如:文件名 hsduiew.txt ; jhdsi.adiwey ;路径+文件名 :c:\hsh\shsh\tetet.txt都可以直接获取到后缀名。PathFindExtension函数说明:函数原型:PTSTR PathFindExtension( _In_ PTSTR pszP原创 2015-07-13 15:42:42 · 1824 阅读 · 0 评论 -
c++获取系统d当前时间
//* 方法一 char *temp =new char[60]; time_t Time= time(NULL);//这句返回的只是一个时间cuo tm * t= localtime(&Time);sprintf(temp,"%4d%02d%02d%02d%02d%02d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_原创 2015-07-27 13:29:51 · 1121 阅读 · 0 评论 -
把char*转换为wchar_t*
把char*转换为wchar_t*用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法: char *CStr = "string to convert";size_t len = strlen(CStr) + 1;size_t converted = 0;wchar_t *WStr;WStr=(wchar_t*)原创 2015-07-09 13:40:09 · 1951 阅读 · 0 评论 -
c++内存安全问题
写一个好的C++程序,我们要懂得好多东西,比如说最基本的面向对象编程思想,C++的封装、继承、多态机制,设计模式等,还有一个很重要的内容便是性能优化,像C/C++这种接近底层的语言,追求的就是性能,与之相关的一项内容便是内存管理,内存分配要合理,禁止破坏内存,不能有内存泄漏,操作不好的话,程序可能会越运行越慢,要不就是莫名其妙的crash,于是令人头疼的bug排查就这样开始了。1、内存转载 2015-11-11 10:48:40 · 1597 阅读 · 0 评论