需求:

数据库取出的字段类似于 "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++对带有分隔符的字符串 分割为数字的通用解决方案的更多相关文章

  1. oracle根据分隔符将字符串分割成数组函数

    --创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...

  2. Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割

    ylbtech-Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割 1.返回顶部 1. Java 实例 - 字符串分割  Java 实例 以下实例使用了 split ...

  3. 从标准输入读取一行数组并保存(用的是字符串分割函数strtok_s() )

    首先介绍字符串分割函数: char *strtok_s( char *strToken, //字符串包含一个标记或一个以上的标记. const char *strDelimit, //分隔符的设置 c ...

  4. SQL Server 游标运用:鼠标轨迹字符串分割

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 游标模板(Cursor Template) 鼠标轨迹字符串分割SQL脚本实现(SQL Code ...

  5. Oracle 超长字符串分割劈分

    Oracle 超长字符串分割劈分,具体能有多长没测过,反正很大.... 下面,,,,直奔主题了: CREATE OR REPLACE FUNCTION splitstr(p_string IN clo ...

  6. 工作中用到的oracle字符串分割整理

    oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...

  7. 【转】字符串分割(C++)

    原文:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/mysplitfuncpp.html 经常碰到字符串分割的问题,这里总结下,也方便我以后使 ...

  8. mysql字符串分割函数(行转列)

    由于工作需要需要处理一些以逗号分隔的字符串,每次都要现做很是麻烦,网上找了很多都没有现成的,好吧,自己动手写一个好了 )) ) BEGIN /*函数功能: 把带逗号的字符串分割取出 参数: num 要 ...

  9. SQL点滴3—一个简单的字符串分割函数

    原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,”  遇到其他情况只要稍加修改就好了 CREATE FUN ...

随机推荐

  1. JAVA-Exception&Error

    JAVA--Exception&Error 在万物皆对象的JAVA中,先让我们看看Exception和Error的地位吧:

  2. RN Android全面屏适配

    像现在市面上新出的手机,例如华为P30 pro,小米9,iPhone XS MAX,屏占比都惊人的达到90%以上,这些手机具备了以下几个特点 大,屏占比高,长宽比都不再是16:9,都达到了19.5:9 ...

  3. SpringBoot详细研究-02数据访问

    Springboot对数据访问部分提供了非常强大的集成,支持mysql,oracle等传统数据库的同时,也支持Redis,MongoDB等非关系型数据库,极大的简化了DAO的代码,尤其是Spring ...

  4. 开发一个简单的babel插件

    前言 对于前端开发而言,babel肯定是再熟悉不过了,工作中肯定会用到.除了用作转换es6和jsx的工具之外,个人感觉babel基于抽象语法树的插件机制,给我们提供了更多的可能.关于babel相关概念 ...

  5. 文件上传按钮input[type="file"]按钮美化时在IE8中的bug【兼容至IE8】

    首先看一下完成后的效果,鼠标移入可改变为手指的效果. 在此就不加图标了 <label class="file-upload"> <span>上传附件< ...

  6. 用C语言的rand()和srand()产生伪随机数的方法总结

    标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void):从srand (seed)中指定的seed开始 ...

  7. BZOJ.4456.[ZJOI2016]旅行者(分治 Dijkstra)

    题目链接 \(Description\) 给定\(n\times m\)的带边权网格图.\(Q\)次询问从点\((x_i,y_i)\)到点\((x_j,y_j)\)的最短路. \(n\times m\ ...

  8. 【原】Spring整合Redis(第二篇)—SDR环境搭建具体步骤

    [环境参数] Spring版本:4.2.6.RELEASESpring-Data-Redis版本:1.7.2.RELEASE Redis版本:redis-2.4.5-win32-win64 [简要说明 ...

  9. centos7 做rails 执行rails server 报错

    做操作rails   server 时  报错 这个错误时因为一些东西没有安装 gem install execjsgem install therubyracersudo apt-get insta ...

  10. Hadoop化繁为简(一)-从安装Linux到搭建集群环境

    简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...