一道字符串解析题

原创 2007年09月20日 00:42:00
题目
我从网络收到一段buffer
USER: nonocast/nPWD: 123456/nCMD:/naaaaa/nbbbbb/ncccccc/n

然后我想将他转换成一个字典(Hash表,Map都ok)
std::map<string, string>
变成如下的pair
<"USER", "nonocast">
<"PWD", "123456">
<"CMD", "aaaaaa/nbbbbb/ncccccc/n">

解法
下面给出数据拆分办法:

#include <stdio.h>

char string[] = "USER: nonocast/nPWD: 123456/nCMD:/naaaaa/nbbbbb/ncccccc/n";

int main( void )
{
    
char *= string + strlen(string);
    
char* pKey = NULL;
    
char* pVal = NULL;
    
while (p >= string)
    
{
        
if (*== ':')
        
{
            pVal 
= p+1;
            
*= '/0';
        }

        
else if (*== ' /n' && pVal)
        
{
            pKey 
= p+1;
            
*= '/0';

            
// print pair
            printf("%s : %s ", pKey, pVal);

            
// clear pKey&pVal to make a Next Find
            pKey = NULL;
            pVal 
= NULL;
        }


        
--p;
    }

    
// the last pair 
    pKey = p+1;
//    pKey = string;
    printf("%s : %s ", pKey, pVal);
}


自我评价:
    可能偶这个版本费用是最低的。
    字段个数不限,字段值所含字符不限

其他解法参考: 
http://community.csdn.net/Expert/TopicView3.asp?id=5765713

相关文章推荐

一道关于字符串指针的趣题

某日,有人问我y

"一道字符串题"的傻乎乎的解法。

原题 http://topic.csdn.net/u/20120710/21/1ac56385-6093-44ca-8ab1-c17d97ee6465.html?seed=418450313&r=7...

AOJ一道水题想到的字符串注意点

最长的单词 http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=487 Time Limit: 1000 ms    Memory Limit: 64 MB ...

每天一道算法题(21)——字符串的全排列和组合算法

题目:       用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba 思...

一道字符串排列组合算法题

一道字符串排列组合算法题/** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 * 例如: * 原始字符串是"abc",打印得到下列所有组合情况 ...

IT公司机试常考的一道题--将任意字符串逆序输出或者输出所有排列

这道题是近几年来各大IT公司招程序员时机试很容易考的一道题,逆序输出很简单,会写程序的人都会。但是输出一段字符串的所有排序情况却不是所有人一时半会能写出来的,结合网友的代码,我整合了一下。代码如下:-...

字符串编程题一道

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截去半个,列如“人ABC”4应该截取为“人AB”,输入“人ABC们DEF”6,应该输出“人ABC”而不是...

每天一道算法题(26)——输入字符串表达式求值

题目:        输入字符串,求输出的值。输入的均为整形,要求包含运算符          例如输入: "24*1 +(4+6)*2+ (4-3*2) *( 4+6-9+(11-3*4)*2 ...

每天一道算法题(7)——在字符串中删除特定的字符

题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 ...

nyoj 525 一道水题【字符串(分割)】

一道水题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写...
  • dxx_111
  • dxx_111
  • 2015年09月01日 10:32
  • 1401
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道字符串解析题
举报原因:
原因补充:

(最多只允许输入30个字)