C++对带有分隔符的字符串 分割为数字的通用解决方案
需求:
数据库取出的字段类似于 "1,3,4"
然后用数字处理后,,比如 "1,2,3" 再存回去
- #include<stdio.h>
- #include<string.h>
- class MyStr{
- public:
- //根据 "1,2,3" 获得数字数组
- static int *split(char * str,const char *split,const int count){
- if(strlen(str)== || strlen(split)==)
- return NULL;
- if(count <=) return NULL;
- int * ints=new int[count];
- memset(ints,0x0,count*sizeof(int));
- char split_str[];
- int index_length=;
- snprintf(split_str,,"%%d%s",split);
- for (int i=;i<count;i++){
- sscanf(str+index_length,split_str,&ints[i]);
- char num_str[]={};
- sprintf(num_str,"%d",ints[i]);
- index_length+=strlen(num_str)+strlen(split);
- }
- return ints;
- }
- //根据数字数组 组合为字符串
- static char * bindNumbersToStr(int * nums,const unsigned int nums_length,const char * split){
- char * str=new char[];
- char num_str[]={};
- int index_length=;
- for(int i=;i<nums_length;i++){
- sprintf(str+index_length,"%d%s",nums[i],split);
- index_length=strlen(str);
- }
- str[index_length-strlen(split)]=0x0;
- return str;
- }
- };
- int main(){
- char str[]="1,3,5,7,9";
- int * ints=MyStr::split(str,",",);
- for(int i=;i<;i++){
- printf("ints[%d]=%d\n",i,ints[i]);
- }
- char * s=MyStr::bindNumbersToStr(ints,,";");
- printf("s=%s\n",s);
- delete s;
- delete ints;
- return ;
- }
运行结果:
ints[0]=1
ints[1]=3
ints[2]=5
ints[3]=7
ints[4]=9
s=1;3;5;7;9
如预期所料
当然还可以进一步完善。
百度下,别人的方案:
http://zhidao.baidu.com/question/348273815.html
http://hi.baidu.com/hwygy_001/item/a073ff0d3eb743e4fe240d3b
http://www.cnblogs.com/huashanlin/archive/2011/04/25/2028597.html
C++对带有分隔符的字符串 分割为数字的通用解决方案的更多相关文章
- oracle根据分隔符将字符串分割成数组函数
--创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...
- Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割
ylbtech-Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割 1.返回顶部 1. Java 实例 - 字符串分割 Java 实例 以下实例使用了 split ...
- 从标准输入读取一行数组并保存(用的是字符串分割函数strtok_s() )
首先介绍字符串分割函数: char *strtok_s( char *strToken, //字符串包含一个标记或一个以上的标记. const char *strDelimit, //分隔符的设置 c ...
- SQL Server 游标运用:鼠标轨迹字符串分割
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...
- Oracle 超长字符串分割劈分
Oracle 超长字符串分割劈分,具体能有多长没测过,反正很大.... 下面,,,,直奔主题了: CREATE OR REPLACE FUNCTION splitstr(p_string IN clo ...
- 工作中用到的oracle字符串分割整理
oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...
- 【转】字符串分割(C++)
原文:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/mysplitfuncpp.html 经常碰到字符串分割的问题,这里总结下,也方便我以后使 ...
- mysql字符串分割函数(行转列)
由于工作需要需要处理一些以逗号分隔的字符串,每次都要现做很是麻烦,网上找了很多都没有现成的,好吧,自己动手写一个好了 )) ) BEGIN /*函数功能: 把带逗号的字符串分割取出 参数: num 要 ...
- SQL点滴3—一个简单的字符串分割函数
原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,” 遇到其他情况只要稍加修改就好了 CREATE FUN ...
随机推荐
- 015.Zabbix的日志监控配置
一 日志监控概述 Zabbix可用于集中监控和分析日志,支持有日志轮询的日志监控分析.当日志中出现相关警告信息(如警告.报错等),可以发送通知给用户.日志监控功能,必须满足以下两个条件: Zabbix ...
- bzoj 4004 向量拟阵
题解RT. eps = 1e-10 WrongAnswer eps = 1e-5 Accepted /************************************************* ...
- 【转载】EmptyWorkingSet 程序运行内存整清理
网络上找了很多关于内存整理的文章,不外乎都是使用EmptyWorkingSet来实现.就如下面这段代码. #include "stdafx.h"#include <windo ...
- ROS知识(21)----ROS C++代码格式化
这里提供两种方法. 第一种方法:clang_format 1.安装clang format sudo apt-get install -y clang-format-3.6 2.从github的ros ...
- phpexcel一个bug
大家好! 我想我发现了这个bug. 如果我从文件中图像删除,它加载正常. 如果有图像时候,何时$ objPHPExcel = PHPExcel_IOFactory :: load($ file);我得 ...
- spring集成kafka
一.添加依赖项 compile 'org.springframework.kafka:spring-kafka:1.2.2.RELEASE' 二.发消息(生产者) 2.1 xml配置 <?xml ...
- 浅谈BFC和IFC
先说说FC,FC的含义就是Fomatting Context.它是CSS2.1规范中的一个概念. 它是页面中的一块渲染区域.而且有一套渲染规则,它决定了其子元素将怎样定位.以及和其它元素的关系和相互作 ...
- HDU 4920 Matrix multiplication(矩阵相乘)
各种TEL,233啊.没想到是处理掉0的情况就能够过啊.一直以为会有极端数据.没想到居然是这种啊..在网上看到了一个AC的奇妙的代码,经典的矩阵乘法,仅仅只是把最内层的枚举,移到外面就过了啊...有点 ...
- JavaScript:回调模式(Callback Pattern)
函数就是对象,所以他们可以作为一个参数传递给其它函数: 当你将introduceBugs()作为一个参数传递给writeCode(),然后在某个时间点,writeCode()有可能执行(调用)intr ...
- 移动web前端小结
原文地址:http://blog.csdn.net/small_rice_/article/details/22690535 在智能手机横行的时代,作为一个web前端,不会编写移动web界面,的确是件 ...