当前位置: 代码迷 >> C语言 >> 我是菜鸟,我修改不了的错,麻烦看看
  详细解决方案

我是菜鸟,我修改不了的错,麻烦看看

热度:91   发布时间:2007-07-07 20:14:18.0
p=st1;
----------------解决方案--------------------------------------------------------
你看一下,那个*st1[8]是二维数组
如果p=st1好象有错
----------------解决方案--------------------------------------------------------
p=st1[0]  
----------------解决方案--------------------------------------------------------

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

char *st1[8]={"99070101","99070102","99070103","99070104","99070105","99070106","99070107"};

int SeqSearch(char **str1,char k[9])
{
int i,j;
char **p;
p=st1;
for(i=0;i<7;i++)
if(!strcmp(*(p+i),k)) return i;
return(-1);
}

int main()
{
int k;
char ch[9];
printf("input your search number:\n");
scanf("%s",ch);
k=SeqSearch(st1,ch);
if(k+1)
{
printf("\t number\n");
printf("\t%s\n",st1[k]);
}
else
printf("NOT FIND!\n");

getchar();
getchar();

}

为了程序简洁和便于理解使用了字符串比较程序strcmp();
程序中注意一、二维数据的使用


----------------解决方案--------------------------------------------------------
char **p;我也指针不怎么样,解释下这个谢谢!

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

[CODE]
#include<stdio.h>
#include <string.h>

char *st1[8]={"99070101","99070102","99070103","99070104","99070105","99070106","99070107"};

int SeqSearch(char **p,char k[9])
{
int i;
for(i=0;i<8;i++)
if(strcmp(*(p+i),k) == 0)
return(i);
return(-1);
}

int main()
{
int k;
char ch[8];
printf("input your search number:\n");
scanf("%s",ch);
k=SeqSearch(st1,ch);
if(k+1)
{
printf("\t number\n");
printf("\t%s\n",st1[k]);
}
else
{
printf("NOT FIND!\n");
}
getch();
}

[/CODE]


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

回15楼
*STR1[]是一个指针数组,也就是他里面的元数是指针。要想访问99070101,99070102。。。。。。就得用指向指针的指针
*(P+I)是指访问STR1数组的第I个元素,但别忘了他依然是个指针,所以要用CHAR **P


----------------解决方案--------------------------------------------------------
以下是引用huangfengchu在2007-7-7 20:46:00的发言:
char **p;我也指针不怎么样,解释下这个谢谢!

这是一个二级指针


----------------解决方案--------------------------------------------------------
以下是引用lishizelibin在2007-7-7 20:17:46的发言:
你看一下,那个*st1[8]是二维数组
如果p=st1好象有错

二维数组不是这样的```
是 st1[][8] 前面一维可写可来写.
你的*st1[8]是一个指针集了```
用来处理多的字符串比较好用一点


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