char函数

通过libzdb连接数据库

谁都会走 提交于 2020-03-01 13:38:40
一.引用博客一些用法介绍: Libzdb挺强大, 支持 MySQL Oracle SQLite PostgreSQL,支持C和C++ Object C,不能在Window下用(看源码是因为基于Linux线程机制编写实现)。 遗憾的是找个资料太费劲,只能到Libzdb官网: 点此进入 ,今正看着上面英文文档,突然网站就登不进去了,才发现国内论坛其实搜不出什么资料。 本文主要介绍Libzdb函数使用,帮理解英文文档有困难的朋友做下翻译。 库结构如下 : 首先下载libzdb的源码安装包,解压,在目录下执行./configure make make install 安装。。以我自己为例,装完后再/usr/local/lib下有对应库文件。 1 线程池根据URL对象创建,URL对象通过char* 形式的URL生成,url中已经包含数据库类型,数据库名 用户密码等参数。形如: database://[user:password@][host][:port]/database[?propertyName1][=propertyValue1] MYSQL访问: mysql://localhost:3306/test?user=root&password=swordfish mysql://root:swordfish @localhost :3306/test ORACLE访问: oracle:

error C2664 不能将参数 1 从“const char [16]”转换为“LPCTSTR

白昼怎懂夜的黑 提交于 2020-03-01 07:46:35
CImage CImg; CImg.Load(_T("C:\\char-aum.png")); 加载图片的时候绝对路径的前面需要添加转义字符\,保证地址信息正确 error C2664:不能将参数 1 从“const char [16]”转换为“LPCTSTR” 用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”。这个错误提示的原因是VS2005默认使用的是UNICODE字符集,在参数转换时会出错,解决方法很简单。 方法一:MessageBox(_T("你已经提交成功。")); 即在参数前加上_T 来源: oschina 链接: https://my.oschina.net/u/1582989/blog/280478

代码面试之广义表

社会主义新天地 提交于 2020-03-01 06:57:57
广义表的基本概念 广义表(Lists,又称列表) 是线性表的推广。线性表定义为n>=0个元素a1,a2,a3,…,an的有限序列。线性表的元素仅限于原子项,原子是作为结构上不可分割的成分,它可以是一个数或一个结构,若放松对表元素的这种限制,容许它们具有其自身结构,这样就产生了广义表的概念。 广义表是n (n>=0)个元素a1,a2,a3,…,an的有限序列,其中ai或者是原子项,或者是一个广义表。通常记作LS=(a1,a2,a3,…,an)。LS是广义表的名字,n为它的长度。若ai是广义表,则称它为LS的子表。 抽象数据类型广义表的定义如下: ADT Glist { 数据对象: D={ei | i=1,2,..,n;n>=0 ; eiÎAtomSet 或ei ÎGlist, AtomSet为某个数据对象} 数据关系:R1={< ei-1, ei > | ei-1 , ei ÎD,2<=i<=n} 基本操作: InitGList( &L); 操作结果:创建空的广义表L。 CreateGList(&L,S); 初始条件:S是广义表的书写形式串。 操作结果:由S创建广义表L。 DestroyGList(&L); 初始条件:广义表L存在。 操作结果:销毁广义表L。 CopyGList( &T,L); 初始条件:广义表L存在。 操作结果:由广义表L复制得到广义表T。 GListLength

实现linux的ls命令,可带参数

若如初见. 提交于 2020-02-29 19:47:56
两个重点: opendir:DIR *opendir(const char *name), 传文件名,返回一个指针,指向目录序列。头文件:#include <sys/types.h> readdir:struct dirent *readdir(DIR *dirp), 把opendir的返回值传过来, 返回值为一个结构体。头文件 #include <dirent.h> #include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h>//获取时间 #include<sys/stat.h>//返回一个包含文件属性的结构体 #include<unistd.h>//调用系统原语 #include<sys/types.h>//一些数据类型,如pid_t进程ID #include<linux/limits.h>//限制数据类型边界 #include<dirent.h>//打开目录读取目录关闭目录,成功则返回指针 #include<grp.h>//组文件 #include<pwd.h>//口令文件 #include<errno.h>//查看错误代码 #define PARAM_NONE 0 //无参数 #define PARAM_A 1 //-a :显示所有文件 #define PARAM_L 2 //-l

C语言学习(3reverse倒置)

有些话、适合烂在心里 提交于 2020-02-29 19:45:12
使用函数对字符串进行倒置。 # include <stdio.h> # include <string.h> void swap ( char * a , char * b ) { char c ; c = * a ; * a = * b ; * b = c ; } void reverse ( char * str ) { int i = 0 , L = strlen ( str ) ; for ( i = 0 ; i < int ( L / 2 ) ; i ++ ) { swap ( & str [ i ] , & str [ L - i - 1 ] ) ; //在交换数组元素时,使用swap1(a+i, a+j)或者swap1(&a[i], &a[j]); } } void main ( ) { char str [ 501 ] ; while ( scanf ( "%s" , str ) != EOF ) { reverse ( str ) ; printf ( "%s" , str ) ; } } 来源: CSDN 作者: qq_36979673 链接: https://blog.csdn.net/qq_36979673/article/details/104574591

Linux C字符串替换函数

余生颓废 提交于 2020-02-29 19:35:03
#include <stdio.h> #include <string.h> #include <stdlib.h> /** * * @author: cnscn@163.com * @reference: lovesnow1314@http://community.csdn.net/Expert/TopicView3.asp?id=5198221 * * 用新子串newstr替换源字符串src中的前len个字符内所包含的oldstr子串 * * @param char* dest 目标串,也就是替换后的新串 * @param const char* src 源字符串,被替换的字符串 * @param const char* oldstr 旧的子串,将被替换的子串 * @param const char* newstr 新的子串 * @param int len 将要被替换的前len个字符 * * @return char* dest 返回新串的地址 * */ char *strreplace(char *dest, char *src, const char *oldstr, const char *newstr, size_t len) { //如果串相等,则直接返回 if(strcmp(oldstr, newstr)==0) return src; //子串位置指针 char

补码一位乘法(Booth算法,C语言实现)

喜欢而已 提交于 2020-02-29 19:32:34
补码一位乘法 首先了解下什么是补码?   补码概念的理解,需要先从“模”的概念开始。 我们可以把模理解为一个容器的容量。当超出这个 容量时,会自动溢出。如:我们最常见到的时钟,其容量 是 12,过了 12 点之后,就会变为 1 点, 2 点……也就是 说,超过12的部分将被丢弃。那么,在这个例子当中,时钟 的模就是12。模的概念可以帮助我们理解补码的含义。   补码的引出:假设现在时钟的时针指向 4 点的位 置,要使其指向 3 点,可以怎么操作呢?很明显,共有 2 种方法,顺时针拨 11 格(+11),或逆时针拨 1 格(-1)。 (为了区分顺时针和逆时针,我们用正数表示顺时针方 向转动的距离,负数表示逆时针方向转动的距离) 从上面的例子,不难发现,+11 和-1 实现了同样的 作用。主要原因是时钟的模是 12,顺时针旋转代表加法 运算:4+11=15,而达到模的部分会自动溢出,即 15-12= 3,即到达 3 点的位置。逆时针旋转代表减法运算:4-1= 3。在这个例子当中,+11和-1 是完全等价的。也就是说, 负数-1 可以用正数+11 代替,这样就可以把减法运算改 为加法运算。也可以说:+11 就是-1 的补码(模为 12 的 情况下)。 具体 的补码一位乘法(B ooth算法)    Booth算法简介    Booth算法也就是补码1位乘的比较法。被乘数为[X]补,乘数为

oracle to_char()函数--数字型到字符型

元气小坏坏 提交于 2020-02-29 17:29:50
数字型到字符型转换是可以自动转换的,当需要前置0时,需要用到to_char()函数 select to_char(8,'00') from dual ; --结果为' 08',注意有个代表正负号位置的空格 select trim(to_char(8,'00')) from dual ; --结果为'08',去掉前置空格 来源: https://www.cnblogs.com/imhuanxi/p/12383889.html

C#之获取控制台输入的数字

自作多情 提交于 2020-02-29 17:19:13
今天写K均值算法的时候,需要将控制台输入的初始化簇中心点读入(就是一些数字),读入的方式是一行读入,以空格隔开,回车结束。例如:“1_2_3...” C#中控制台读入的方法也不多,常见的有: 1)Console.Read() 方法读取单个字符,获取的是用户输入的任何值的ASCII值;例如输入的是‘1’,得到的是“49”。该方法是读入一行处理一次。 2)Console.ReadLine()方法读取一行字符串,获取的是输入的一行的整个字符串;该方法是读入一行处理一次。 3)Console.ReadKey()方法读入的是一个按键值,一次读入一个字符。例如:让用户输入Y或者N的时候可以用。实际上这个方法在实际应用中并不用来读入数据,它有另一个功能就是可以使当前程序等待键盘输入,以便退出程序。使调试时能看到输出结果。如果没有此句,命令窗口会一闪而过。(相信初学的会遇到这个问题,作用跟C中的getch()函数一样。) 那么怎么实现我的输入要求呢,我用的是Console.ReadLine()和split()两个方法组合实现的。当然还有更好的方法,等待读者去发现。具体代码如下: Console.Write("\n输入K个初始簇中心点的序号(序号一行输入,以空格隔开,回车结束!)\n"); string str = Console.ReadLine();//从控制台读入输入 string[]

typedef函数指针用法

安稳与你 提交于 2020-02-29 16:45:49
1.简单的函数指针的应用 形式1:返回类型(*函数名)(参数表) [cpp] view plain copy char (*pFun)( int ); char glFun( int a){ return ;} void main() { pFun = glFun; (*pFun)(2); } 第一行定义了一个指针变量pFun。首先我们根据前面提到的“形式1”认识到它是一个指向某种函数的指针,这种函数参数是一个int型,返回值是char类型。只有第一句我们还无法使用这个指针,因为我们还未对它进行赋值。 第二行定义了一个函数glFun()。该函数正好是一个以int为参数返回char的函数。我们要从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址 然后就是main()函数了,它的第一句您应该看得懂了——它将函数glFun的地址赋值给变量pFun。main()函数的第二句中“*pFun”显然是取pFun所指向地址的内容,当然也就是取出了函数glFun()的内容,然后给定参数为2。 2.使用typedef更直观更方便 形式1:typedef 返回类型(*新类型)(参数表) [cpp] view plain copy typedef char (*PTRFUN)( int ); PTRFUN pFun; char glFun( int a){