
开头声明了包含的string.h,但是里边的函数例如strlen() strcmp()都不能用,为什么啊。。。。
这是数据结构串里的代码。#defineMAX50typedefunsignedcharHString[MAX+1];typedefintStatus;#include<s...
这是数据结构 串 里的代码。
#define MAX 50
typedef unsigned char HString[MAX + 1];
typedef int Status;
#include <string.h>
#include <stdio.h>
void SubString(HString Sub,HString S,int pos,int len)
{
int i;
for(i=pos-1;i<pos-1+len;i++)
{
Sub[i]=S[i];
}
Sub[i]='\0';
}
Status StrCompare(HString Sub,HString T)
{
int a;
a=strcmp(Sub,T);
return a;
}
Status Index(HString S,HString T,int pos)
{
int n,m,i,a;
HString Sub;
if(pos > 0)
{
n=15;//strlen(S);
m=5;//strlen(T);
i=pos;
while(i<=n-m+1)
{
SubString(Sub,S,i,m);
a=StrCompare(Sub,T);
if (a != 0) i++;
else return i;
}//while
}//if
}
void main()
{
int i;
HString S="beijingzhongguo",T="zhong";
i=Index(S,T,1);
printf("%d",i);
} 展开
#define MAX 50
typedef unsigned char HString[MAX + 1];
typedef int Status;
#include <string.h>
#include <stdio.h>
void SubString(HString Sub,HString S,int pos,int len)
{
int i;
for(i=pos-1;i<pos-1+len;i++)
{
Sub[i]=S[i];
}
Sub[i]='\0';
}
Status StrCompare(HString Sub,HString T)
{
int a;
a=strcmp(Sub,T);
return a;
}
Status Index(HString S,HString T,int pos)
{
int n,m,i,a;
HString Sub;
if(pos > 0)
{
n=15;//strlen(S);
m=5;//strlen(T);
i=pos;
while(i<=n-m+1)
{
SubString(Sub,S,i,m);
a=StrCompare(Sub,T);
if (a != 0) i++;
else return i;
}//while
}//if
}
void main()
{
int i;
HString S="beijingzhongguo",T="zhong";
i=Index(S,T,1);
printf("%d",i);
} 展开
展开全部
strcmp 的参数是两个char*,而你的参数是unsigned char
你这样改 typedef char HString[MAX + 1];
你这样改 typedef char HString[MAX + 1];
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询