Linux下C语言字符串操作之分割字符串总结

http://biancheng.dnbcw.info/c/452773.html

http://biancheng.dnbcw.info/c/452774.html

http://www.oschina.net/code/snippet_2325404_47570

 

http://blog.csdn.net/bg2bkk/article/details/37569555

 

 

c/cpp中如何分割字符串,类似于split的功能

 

1,分割字符串
char *strtok(char *str, const char *delim);
功能:分解字符串为一组字符串。str为要分解的字符串,delim为分隔符字符串。实质上的处理是,strtok在str中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。
说明:首次调用时,str指向要分解的字符串,之后再次调用要把str设成NULL。strtok在str中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。
返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
示例:

1.      #include <stdio.h>

2.      #include <string.h>

3.       

4.      int main(){

5.          //id,姓名,语文,数学,英语

6.          charstr[]="2,张三,89,99,66";

7.          char*token=strtok(str,",");

8.          while(token!=NULL){

9.              printf("%s\t",token);

10.          token=strtok(NULL,",");

11.      } 

12.      printf("\n");

13.      return 0;

14.  }

示例程序输出:

1.      2   张三  89  99  66

说明:str参数必须设置为数组的形式,而不是字符串常量(如:char *str="2,张三,89,99,66";),因为strtok在执行过程中会对str进行修改,必须保证str是可写的。

2,分割字符串(还是分割字符串)
char *strsep(char **stringp, const char *delim);

1.      #include <stdio.h>

2.      #include <string.h>

3.       

4.      int main(){

5.          //id,姓名,语文,数学,英语

6.          charstr[]="2,张三,89,99,66";

7.          //str是一个指针常量,而strsep的第一个参数需要一个指向指针的指针,所以不能对str做取地址操作,

8.          //这里再定义一个指针变量就可以取地址操作了。否则会出现段错误。

9.          char *strv=str;

10.      char*token=strsep( &strv,",");

11.      while(token!=NULL){

12.          printf("%s\t",token);

13.          token=strsep( &strv,",");

14.      } 

15.      printf("\n");

16.      return 0;

17.  }

说明:此函数也会修改第一个参数的内容,所以必须保证提供的不是字符串常量。


相关资料:

·        c/c++LinuxC程序访问mysql数据库

·        c/c++LinuxC语言字符串操作之分割字符串

·        c/c++向量空间模型——计算文本(英文)相似度

·        c/c++LinuxC语言字符串操作之连接和查找

·        c/c++C语言之预处理命令

Linux下C语言字符串操作之分割字符串来源网络,如有侵权请告知,即处理!

 

 

 

废话不多说,直接上代码:

1.      #include <stdio.h>

2.      #include <mysql/mysql.h>

3.       

4.      #define HOST "192.168.56.2"

5.      #define DB "webdevtest"

6.      #define USER "webdev"

7.      #define PWD "webdev"

8.      #define PORT 3306

9.       

10.  int main(){

11.      MYSQL mysql;

12.   

13.      //连接之前得先初始化

14.      mysql_init(&mysql);

15.   

    //连接mysql数据库

1.          if(!mysql_real_connect(&mysql,HOST,USER,PWD,DB,PORT,NULL,0)){

2.              printf("连接数据库发生错误!\n");

3.              return-1;

4.          }

5.          printf("连接数据库成功!\n");

6.       

7.          //设置查询时的编码

8.          mysql_query(&mysql,"setnames utf8");

9.       

    //执行查询语句   
    char *sql="select * from test_sell_records limit 20";

1.          if(mysql_query(&mysql,sql)!=0){

2.              printf("执行mysql语句发生错误!\n");

3.              mysql_close(&mysql);

4.              return-1;

5.          }

6.          //获取结果集

7.          MYSQL_RES*result=mysql_store_result(&mysql);

8.          unsigned inti,num_fields;

9.          //获取字段数

10.      num_fields=mysql_num_fields(result);

1.          //循环打印出各行

2.          MYSQL_ROW row;

3.          while((row=mysql_fetch_row(result))!=NULL){

4.              for(i=0;i<num_fields;i++){

5.                  printf("%s\t",row[i]);

6.              }

7.              printf("\n");

8.          }

9.       

10.      //释放结果集

11.      mysql_free_result(result);

12.      //关闭连接

13.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值