一道字符串解析题

原创 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

UESTC 1696 一道简单的字符串题 KMP+dp

题意:求出所有前缀在字符串中出现次数的和 KMP+dp dpi表示前缀s[0,i]在字符串中出现的次数, 根据next数组,从n向1跑。 u = i; dp[u-1] += 1; if(nxt[u]!...
  • ProLightsfxjh
  • ProLightsfxjh
  • 2017年07月18日 21:48
  • 740

又一道简单题

又一道简单题 Time Limit: 5000MS Memory Limit: 65535KB 64bit IO Format: SubmitStatusDescriptio...
  • qq_32792879
  • qq_32792879
  • 2016年08月23日 16:50
  • 260

UESTC 1703 一道更简单的字符串题 哈希+枚举

求出最小循环串。 哈希+枚举 先把字符串哈希, 然后从ans = 1 ~ n进行枚举, check的时候枚举每个hash(i, ans) == hash(0, ans), 且对于最后一段长度不到ans...
  • ProLightsfxjh
  • ProLightsfxjh
  • 2017年07月18日 21:56
  • 895

学生给老师的一道思考题

某一天某个老师对某个学生说“你现在已经旷课10学时,按照学校的规定需要上报”,该学生对老师说“这门课还能不能过了?如果不能我就不来了!”。 难啊,真难回答!刚开学没有几天,这个学期还有好长时间呢。如果...
  • JavaEETeacher
  • JavaEETeacher
  • 2009年09月11日 13:49
  • 4769

每天一道编程题(3)

有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi。规则是将数字为xi的篮球投到xi除p的余数为编号的袋里。若袋里已有篮...
  • yj1499945
  • yj1499945
  • 2015年09月26日 21:24
  • 477

CDOJ 每周一题div2 这是一道暴力题(暴力/思维)

昨天chipizz突然问我这道题怎么写,我当时就嘴炮AC了一下,感觉似乎很简单啊,于是去CDOJ注册了个帐号打算写写。 拿到这道题的第一想法是预处出现有数字能够组成的所有的能被3整除的一位数还有两位...
  • Murphyc
  • Murphyc
  • 2018年02月03日 19:35
  • 61

每天一道编程题(1)

现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。 输入描述: 一行五个整数...
  • yj1499945
  • yj1499945
  • 2015年09月24日 10:15
  • 598

每日一道算法题——1

求字符串字串的长度。
  • q1242027878
  • q1242027878
  • 2017年02月07日 13:06
  • 578

华为机试第一题[2016年8月18日上午]计算重复字符

题目描述 输入一行字符,统计英文字母的个数,非英文字母直接掠过不统计 例如:输入:AAA^^^%ABBCd98n2    输出:A4B2C1d1n1 首先我想说的是,草,自己的代码能力真渣!!!!!回...
  • wdasdaw
  • wdasdaw
  • 2016年08月18日 17:32
  • 526

曾经做的一道算法题,到目前为止,我觉得是最好的一道算法题了。

某学校进行打字比赛,比赛主要考查选手在规定时间内正确输入的字数。但问题是,如何确定每一个输入的字是否是正确的(即是否与原稿相同),因为完全存在选手错字、漏字和增字的情况,如:原稿为“abcde”,打字...
  • limingchuan123456789
  • limingchuan123456789
  • 2012年08月22日 15:17
  • 1185
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道字符串解析题
举报原因:
原因补充:

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