2 kaiping1217 kaiping1217 于 2016.03.08 13:57 提问

C++ 中 字符串转二维数组的问题
c++
 id<255>name<000>1<255>科技<000>7<255>河南

这是一串字符串 要转成如下格式的二维数组

 [[id,name],[1,科技],[7,河南]]

求代码学习

3个回答

baijiaheizhiganmao
baijiaheizhiganmao   2016.03.08 14:41
已采纳

完全满足你的要求!

 #include <iostream>
#include <string>
#include <vector>
using namespace std;

vector<string> split(string strTime)  
{  
    vector<string> result;  
    string temp(""); 
    bool part = false;
    for(size_t i = 0; i < strTime.size(); )  
    {  
        if(strTime[i] == '<')  
        {  
            result.push_back(temp);  
            temp = "";
            while(strTime[i]!='>')
                i++;
            i++;
            continue;
        }
        else  
        {  
            temp += strTime[i]; 
            i++;
        }  
    }  
    result.push_back(temp);
    return result;  
}  
int main()
{

    string test("id<255>name<000>1<255>科技<000>7<255>河南");
    vector<string> result = split(test);
    for(size_t i = 0; i < result.size(); i++)  
    {  
        cout<<result[i]<<"  ";  
    } 
    cout<<endl;

    string fina;
    string head("[[");
    string tail("]]");
    string mid("],[");

    //[[id,name],[1,科技],[7,河南]]
    for(size_t i = 0; i < result.size(); i++)
    {
        if((i+1)%2==0 && i!=0 &i!=result.size()-1)
        {
            fina +=result[i];
            fina+=mid;
        }
        else
        {
            fina += result[i];
            if(i!= result.size()-1)
                fina +=",";
        }
    }
    fina = head + fina + tail;
    cout<<fina<<endl;
    return 0;
}
baijiaheizhiganmao
baijiaheizhiganmao   2016.03.08 14:43

输出如下:
图片说明

John_ToStr
John_ToStr   Rxr 2016.03.08 14:52

这种写法略微简单粗暴。而且代码逻辑晦涩难懂。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
二维数组 及 转换为 字符串
<br />DataTable dtb = new DataTable();<br /> <br />string[][] m_list_2 = new string[2][];<br />string m_list_1 = "";<br /><br />m_list_2[0] = new string[dtb.Rows.Count];<br />m_list_2[1] = new string[dtb.Rows.Count];<br />for (int i = 0; i < dtb.Rows.Count
字符串转化为二维数组
public class TestStringParser { public static void main(String[] args) { String src = "1,2;3,4,5;6,7,8"; String dda[] = src.split(";"); //double dimensional array 二维数组 System.out.println("原始字符
二维数组、字符串互相转换
二维数组、字符串互相转换 以下是随便写的例子。 1.字符串转二维数组 var a="[['1','2','3','4','5'],['a','b','c','d','e'],['y1','y2','y3','y4','y5']] "; var str=eval(a); alert(str[0][3]); //结果:4   2.二维数组转字符串 var b=[['1','2']
字符串和二维数组的互相转化
在进行前后端分离开发的时候,后端存数据需要字符串类型的数据,而前端返回和调用的多为多维数组文本旨在说明一下,二维数组和字符串的互相转化前端穿过来的二维数组函数转化字段转化后存储在一个字段内,存储的信息为 超长的一个大的字符串当把字符串扎转换为二维数组返回给前端时候先把大字符串,一&quot;;&quot;为分隔符打成若干一维数组,然后该数组的每一项都打散成一个小数组,再自己设置一个数组$keyname,作为键,和小数...
Java——解析字符串到二维数组
//解析字符串到到二维数组 public class SJH { public static void main(String[] args) { String s = "1,2;3,4,5;6,7,8"; double[][] d; String[] s1 = s.split(";"); d = new double[s1.length][]; // !!! for (in
二维数组和字符串之间的互转
为什么会想到把一个二维数组转成字符串呢?哎,说来话长,简单来说就是我在保存游戏的时候,用的那个不支持多维数组,而且我也不知道一共会有多少个二维数组,所以我就想着干脆转换成一个长长的字符串算了,不知道这样会消耗多少性能。。。但是也管不了了,先实现功能再说读取游戏的时候还要把字符串转换成二维数组。。。 ///     /// 将一个二维数组转化为一个string     ///     /
以逗号分割字符串,形成二维数组,并把结果传出C/C++
有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1)  以逗号分割字符串,形成二维数组,并把结果传出; 2)  把二维数组行数运算结果也传出。 int getStrArray(const char *src, char dst[100][100]) { int i = 0,j = 0,
PHP实现二维数组转字符串
$arr = array( [0] => array( [rent_contract_parent_id] => 0 ), [1] => array( [rent_contract_parent_id] => 645 ), [2] => array( [rent_contract_parent_id] => 665 ) ); //二维数组转化为字符串,中间用,隔开 func
将字符串转化为一维、二维数组
package testJava815; import java.io.ObjectInputStream.GetField; public class TestArray { private static String[] getRequiredPhotos() { return new String[] { "车主证件", "车主与车", "事故现场", "事故现场"
java字符串转换为二维数组
public class Main { public static void main(String[] args){ String str="图书管理\\a\\s\\d|q\\w\\e|z\\x\\c"; System.out.println(str);     String str2=str.substring(5);     String str3=str.substring(