当前位置: 代码迷 >> C语言 >> [求助] 看程序!有问题不知道怎么解决!
  详细解决方案

[求助] 看程序!有问题不知道怎么解决!

热度:247   发布时间:2006-06-27 16:09:58.0
[求助] 看程序!有问题不知道怎么解决!

先看代码:

#include <string.h>
#include <stdio.h>

char * fun(char *str1,char *str2,int a,int b);
void main( )
{
     char s[]="QN=20040516010101001;ST=32;CN=2011;PW=123456;MN=88888880000001;Flag=3;CP=&&12&&";
     char *p=s;
     char *s1=s;
     char *v1 ;
     char *qn ;
     char isp ;
     char iep ;
    
/*******取QN***************/
     p=strchr(p,'QN=') ;
     isp = p-s ;
      p++;
      p=strchr(p,';') ;
      iep = p-s ;
      substring(v1,s1,isp+2,iep-(isp+1))  ; //这里调用函数:substring() ;
      qn = v1 ;
      printf("QN:%s\n",qn);
}


char * substring(char *str1,char *str2,int a,int b)
{
     char *ptr1=str1;
     long i ;
     for(i=a;i<a+b;i++)
     {
       *ptr1=*(str2+i-1);
        ptr1++ ;
     }
     *ptr1=0;
     return str1;
}

这个就可以取字符串QN的值!  但是 当字符串
s[]="QN=20040516010101001;ST=32;CN=2011;PW=123456;MN=88888880000001;Flag=3;CP=&&12345&&"; 的时候就出现未知错误!
也就是说字符串 s[] 再长点就出现错误,

高手指点以下!~~~~~~

[此贴子已经被作者于2006-6-27 16:26:43编辑过]

搜索更多相关的解决方案: 2011  void  include  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 08:14:19
blackkey

等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
  得分:0 
s[100]="QN=20040516010101001;ST=32;CN=2011;PW=123456;MN=88888880000001;Flag=3;CP=&&12345&&";


这样会输出的MN会出现乱码的`~~~

[此贴子已经被作者于2006-6-27 16:36:04编辑过]


----------------解决方案--------------------------------------------------------
我看不懂?
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-06-27 08:40:25
blackkey

等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
  得分:0 

终于找到乱码的原因拉`~~

      substring(v1,s1,isp+2,iep-(isp+1))  ; //这里调用函数:substring() ;
      这里取得的值是对的~~

      qn = v1 ;
      
      这里转换后就部分成了乱码~~ 但是有的时候又不会出现 有的时候又会出现乱码~

[此贴子已经被作者于2006-6-27 17:11:42编辑过]


----------------解决方案--------------------------------------------------------

全部代码~ 有两个地方出现乱码~~我已标出来拉`~~~~红颜色的~~~

#include <string.h>
#include <stdio.h>

char * fun(char *str1,char *str2,int a,int b);
void main( )
{
char s[100]="QN=20040516010101001;ST=32;CN=2011;PW=123456;MN=88888880000001;Flag=3;CP=&&11&&";
char *p=s;
char *s1=s;
char *v1 ;
char *qn ;
char *st ;
char *cn ;
char *pw ;
char *mn ;
char *Flag ;
char *cp ;
char *ppp ;
char isp ;
char iep ;

isp = 0 ;

/*******取QN***************/
p=strchr(p,'QN=') ;
isp = p-s ;
p++;
p=strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1)) ; //这里调用函数:FUN
qn = v1 ;
printf("QN:%s\n",qn);
/********取ST************/
p = strchr(p,'=') ;
isp = p-s ;
p = strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1));
st = v1 ;
printf("ST:%s\n",st) ;
/********取CN************/
p = strchr(p,'=') ;
isp = p-s ;
p = strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1));
cn = v1 ;
printf("CN:%s\n",cn) ;
/********取PW************/
p = strchr(p,'=') ;
isp = p-s ;
p = strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1));
pw = v1 ;
printf("PW:%s\n",pw) ;
/********取MN************/
p = strchr(p,'=') ;
isp = p-s ;
p = strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1));
mn = v1 ; //这个数值出现乱码!!!别的值很正常!!一个地方
printf("MN:%s\n",mn) ;
/********取Flag************/
p = strchr(p,'=') ;
isp = p-s ;
p = strchr(p,';') ;
iep = p-s ;
substring(v1,s1,isp+2,iep-(isp+1));
Flag = v1 ;
printf("Flag:%s\n",Flag) ;
/********取CP************/
p = strchr(p,'=&&') ;
isp = p-s ;
p = p+2 ;
p = strchr(p,'&&') ;
iep = p-s ;
substring(v1,s1,isp+3,iep-(isp+2));
cp = v1 ; //这里也出现乱码 别的值很正常!!两个地方
printf("CP:%s\n",cp) ;

}

char * substring(char *str1,char *str2,int a,int b)
{

char *ptr1=str1;
long i ;
for(i=a;i<a+b;i++)
{
*ptr1=*(str2+i-1);
ptr1++ ;
}
*ptr1=0;
return str1;
}


----------------解决方案--------------------------------------------------------

怎么没人啊`~`
自己顶


----------------解决方案--------------------------------------------------------
回复:(blackkey)怎么没人啊`~`自己顶
以下是引用blackkey在2006-6-28 8:53:40的发言:

怎么没人啊`~`
自己顶

都是世界杯惹的祸。They are sleeping...


----------------解决方案--------------------------------------------------------

帮帮忙


----------------解决方案--------------------------------------------------------
  相关解决方案