先看代码:
#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编辑过]