C字符串截取、C数据库操作

C字符串截取、C数据库操作

1、字符串截取

#include

#include

char* substring(char* ch,int pos,int length)

{

//定义字符指针 指向传递进来的ch地址

char* pch=ch;

//通过calloc来分配一个length长度的字符数组,返回的是字符指针。

char* subch=(char*)calloc(sizeof(char),length+1);

int i;

//只有在C99下for循环中才可以声明变量,这里写在外面,提高兼容性。

pch=pch+pos;

//是pch指针指向pos位置。

for(i=0;i

{

subch[i]=*(pch++);

//循环遍历赋值数组。

}

subch[length]='\0';//加上字符串结束符。

return subch; //返回分配的字符数组地址。

}

int main(){

char* result;

char* tstStr = "abcdefg";

result = substring(tstStr,0,2);

printf("结果:%s",result);

}

结果输出第0个字节开始的两个字节

2、strncpy与strcpy函数

(1) strncpy:

char *strncpy(char *dest, const char *src, int n) //目标地址 原地址 长度

将src指向字符串的前n个字节(不包含\0)赋值到dest指向的字符串中。

截取从某个字节开始的N个字节:

char dest[4] = {""};

char src[] = {"123456789"};

strncpy(dest, src+3, 3); //从第三个字节开始的三个字节长度

puts(dest);

输出:456

(2) strcpy:

strcpy把src地址开始且含有\0个字符串复制到dest开始的地址空间,返回值为char*类型,

感觉strncpy和strcpy就只有有没有赋值到\0的区别了

3、C语言数据库操作

以前都是用java操作数据库比较多,很少用C语言来实现对数据库的一些增删查改,记录一下

(1) 头定义:

#include

(2)数据库属性

char server[] = "localhost"; //本地

char user[] = "root";

char password[] = "123";

char database[] = "aa"; //数据库名

(3)初始化连接

conn = mysql_init(NULL);

(4)下面就可以开始连接了,安全起见,有错误的话起码要打印个语句出来,并且退出程序

if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0)){

fprintf(stderr, "%s\n", mysql_error(conn));

exit(1);

}

(5)连接完成后,就可以开始对数据库进行增删查改的操作了

创建数据表:

char sql1[]="create table if not exists %s (devvarchar(20),timeaa varchar(30),status int(1),power int(1),exception int(1))";

不存在的话就重新创建一个表

赋值语句我使用的是sprintf格式化语句

sprintf(buf,sql1,deveui);

这句代码的意思就是这个deveui以sql1的格式赋值到buf中,buf也是char类型的。

插入数据:

char sql[]="insert into %s values ('%s','%s',%d,%d,%d)";

sprintf赋值也是一样的,按照对应的格式进行赋值就可以了。

最后,得查看一下数据

if(mysql_query(conn,buf)){

fprintf(stderr, "%s\n", mysql_error(conn));

printf("stderor\n");

exit(1);

}

相关推荐

365bet亚洲投注 几块一碗的麻辣烫什么梗

几块一碗的麻辣烫什么梗

📅 01-20 👁️ 2190
365bet亚洲投注 国外近亲结婚的范围及其法律界定
bt365备用网站 怎么折雨伞-西瓜视频里的实用技巧