当前位置:首页
开发技术指南» 文章正文
    引言:

 ·奇怪的内存分配(高分求答)    »显示摘要«
    摘要: 有以下一段代码: #include <stdlib.h> #pragma pack (1) class myint{ long value; public: myint(long v){value = v;} }; typedef myint* lpmyint; int main(){ int count = 1024*1024; lpmyint* pintarr = ......
    摘要: 当我把做好的excel表保存为csv格式的文件时(使用vba的方法),csv格式的文件总是按照所有行中所需单元格最多的那一行作为所有行长度,如果其他少于这些单元格的行的地方将会以空格填补,也就是行尾多了很多逗号,例如,我先做了一个sheet,然后将其内容重新生成了这样一个csv格式文件: field1,field2,field3,field4,field5,field6,field7,fi......


比较●和○

有一串字符str:○认购                 ●申购                 ●赎回                 ○预约赎回。需要把有●的项解析出来,  
  我用strpbrk(str,   "●认购")比较,返回成功,和strpbrk(str,   "○认购")的返回一样。请各位高手帮忙解决。

NO.1   作者: snowbirdfly

对了~  
  这样好象不行吧~~  
  函数原型:  
  函数名:   strpbrk    
  功     能:   在串中查找给定字符集中的字符  
  例如:  
  #include   <stdio.h>    
  #include   <string.h>    
   
  int   main(void)    
  {    
        char   *string1   =   "abcdefghijklmnopqrstuvwxyz";    
        char   *string2   =   "onm";    
        char   *ptr;    
   
        ptr   =   strpbrk(string1,   string2);    
   
        if   (ptr)    
              printf("strpbrk   found   first   character:   %c\n",   *ptr);    
        else    
              printf("strpbrk   didnt   find   character   in   set\n");    
   
        return   0;    
  }    
   
  结果为:m  
  string2中在   string1中首先出现的是字符m  
  在串中查找给定字符集中的字符为它的功能~~//又不是这个字符串~  
  怎么可以查找解析出   ●申购                 ●赎回      
  因为   ●申购                 ●赎回     这些都是字符串~~

NO.2   作者: zhouhuahai

是因为你的○和●的原因,它们是占了两个字符空间的.而这两个符号的第一个字节是相同的!  
  解决方案:  
  用宽字符版本,把char   改成wchar_t,   strpbrk改成wcspbrk  
   
  附测试代码:  
  wchar_t   *string   =   (wchar_t*)"○认购                 ●申购                 ●赎回                 ○预约赎回\n";  
        wchar_t   *result;  
        wchar_t   *st1   =   (wchar_t*)"●认购",   *st2   =   (wchar_t*)"○认购";  
        printf(   "1:   %s\n",   string   );  
        result   =   wcspbrk(   string,   st1   );  
        printf(   "2:   %s\n",   result   );  
        result   =   wcspbrk(   result,   st2   );  
        printf(   "3:   %s\n",   result   );

NO.3   作者: Maxwell

楼主需要的是strstr函数,这样"●认购"   "○认购"就能区分开了  
   
  下面是我前面说的思路,随便写的,难保没错  
  char   *Str   =   "○认购   ●认购   ●申购   ●赎回   ○预约赎回";  
  char   *temp,   *pStr   =   Str;  
  char   *pFirst,   *pLast;  
   
  while   (0   !=   *pStr)  
  {  
          pFirst   =   strstr(pStr,   "●");  
          if   (0   !=   pFirst)  
          {  
                  pFirst   +=   2;  
                  pStr   =   pFirst;  
                  pLast   =   strstr(pStr,   "●");  
                  temp   =   strstr(pStr,   "○");  
                  if   ((temp   <   pLast   &&   0   !=   temp)   ||   0   ==   pLast)  
                  {  
                          pLast   =   temp;  
                  }  
                  while   (pFirst   !=   pLast   &&   0   !=   *pFirst)  
                  {  
                          cout   <<   *pFirst++;  
                          pStr++;  
                  }  
          }  
  }  
 


 ·乱码问题    »显示摘要«
    摘要: 为什么我加了,这句 <meta http-equiv="content-type" content="text/html; charset=gb2312"> 页面还有这种乱码 ?òμ???è?3é?¨2á ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE