C语言编程字符串的查找!
发布网友
发布时间:2022-04-26 17:24
我来回答
共4个回答
热心网友
时间:2023-10-17 03:32
主要是free的原因,其他函数问题一样,只修改2个函数。
void Insert(Citylist &T,char name[],int x,int y)
{
Citylist p;
p=(City *)malloc(sizeof(City));
strcpy(p->name,name);
p->x=x;
p->y=y;
p->next=T->next;
T->next=p;
//free(p); //辛辛苦苦新建的节点为什么要free掉?
} //插入操作
void Search(Citylist T,char name[20])
{
Citylist p;
int k=0;
p=T->next;
while(p!=NULL) // 逻辑错误
{
if(strcmp(p->name,name)==0)
{
printf("你要查找的城市%c:坐标为(%d,%d)\n",p->name,p->x,p->y);
k++;
}
p=p->next;
}
if(k==0)
printf("没有找到你所查的城市信息。\n");
//free(p); //p是指向节点的free掉即删除掉节点.......
} //查找操作
既然1的功能是插入城市,不能再有Createcitylist(T);新建头结点函数,
其他用hi聊
热心网友
时间:2023-10-17 03:32
地址分配有问题。因为虽然name都是局部的,但编译在分配时地址时可能会冲突,因name数组名。追问还是一样!~
追答I have no idea
热心网友
时间:2023-10-17 03:33
你的for语句写错了, for(i=0;i<str1-str2;i++);
for(j=0,k=i;str22[j]==str11[k];k++,j++);
这两个for语句不应该加结束符';'
去掉';'就可以了。
追问哪里有用到for语句了?
热心网友
时间:2023-10-17 03:33
字符串查找不是有find函数吗?你试试