求助sscanf函数的使用
1。从"[aaa]"中获取"aaa"
sscanf("[aaa]", "[%s]", tmp1);       --这样得到的tmp1是"aaa]"
2。从"bbb=ccc"中获取"bbb"和"ccc"
sscanf("bbb=ccc", "%s=%s", tmp1, tmp2);  --这样得到的tmp1是"bbb=ccc",tmp2是""不要告诉我说用strcpy等函数可以实现,我只想知道用sscanf函数该如何实现,谢谢各位了先!

解决方案 »

  1.   

    sscanf("[aaa]", "[%[^]]", tmp1); sscanf("bbb=ccc", "%[^=]=%s", tmp1, tmp2);  
      

  2.   

    对于sscanf("bbb=ccc")可以这样
    CString sZ = "bbb=ccc";
    CString s1,s2;
    sscanf(sZ,"%[1-9a-z]%*c%[1-9a-z]",s1.GetBuffer(100),s2.GetBuffer(100));
    此法可以过滤用特殊字符分割的常规字符数据
      

  3.   

    本帖最后由 happyparrot 于 2009-12-03 11:11:04 编辑
      

  4.   

    自己试出来这个
    scanf("[aaa]","[%[^]]s", tmp1);
    应该和
    scanf("[aaa]","[%[^]]", tmp1);效果一样后面这句就不明白了,加多个s就不对了,不明白。lfchen能不能解释一下
    sscanf("bbb=ccc","%[^=]=%s", tmp1, tmp2); 
      

  5.   

    想明白了,二楼的标准答案,谢了!sscanf("[aaa]", "[%[^]]", tmp1); 
    sscanf("bbb=ccc", "%[^=]=%s", tmp1, tmp2);  
      

  6.   

    这个你可以在网上搜一下sscanf,看格式说明就知道了。
    %[^=]表示一直搜索到第一个=号为止的内容
    然后=就匹配你的=符号,最后%s是获取剩余的字符串。