charles123a
2016-04-04 06:22
采纳率: 80%
浏览 1.7k

C语言指针数组查找问题

#include
#include
void main()
{
void input(char name[],int n);
void sort(char *name[],int n);
void print(char *name[],int n);
void search(char *name[],int n);
char *name[4];
int n=4;
input(name,n);
sort(name,n);
print(name,n);
search(name,n);
}
void input(char *name[],int n)
{
int i;
printf("请输入4个字符串:\n");
for(i=0;i<n;i++)
{
name[i]=(char
)malloc(4*sizeof(char));
gets(name[i]);
}
}
void sort(char *name[],int n)
{
char *temp;
int i,j,k;
for(i=0;i {
k=i;
for(j=i+1;j if(strcmp(name[k],name[j])>0)
k=j;
if(k!=j)
{temp=name[i];name[i]=name[k];name[k]=temp;}
}
}
void print(char *name[],int n)
{
int i;
printf("字符串排序结果:\n");
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
void search(char *name[],int n)
{
char m;
scanf("%s",&m);

}

想补充一个search函数进行输入查找,但是不知道该怎么写,尝试写了几个但都查找失败,请各位大神指导下吧,拜托了,万分感谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 小灸舞 2016-04-04 07:28
    已采纳

    楼主要这种?

     void search(char *name[],int n)
    {
        char str[32] = {0};
        printf("请输入要查找的字符串:");
        scanf("%s", str);
        int i;
        for(i = 0; i < n; i++)
        {
            if(strcmp(name[i], str) == 0)
            {
                printf("找到字符串,序号为:%d\n", i + 1);
                return;
            }
        }
        printf("未找到字符串\n");
    }
    
    点赞 2 评论
  • Robot-S 2016-04-04 06:32

    int zip[4] = {1,2,3,4};//  初始化一个数组
    zip == &zip[0]  // 这个没问题
    那&zip 是什么意思 ?
    printf("zip = %p      &zip= %p\n",zip,&zip);  //  这两个输出的值为什么一样 都是数组首元素的地址?
    看指针和多维数组的时候搞糊涂了,现在一维的也有点懵。......
    答案就在这里:c语言数组指针的问题
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    点赞 评论
  • tusong86 2016-04-04 07:36

    这个void sort(char *name[],int n)想实现什么样的功能?
    我理解应该是输入一个字符串,然后看与数组name中哪一个匹配,我理解函数原型应该是下面这样:
    int sort(char *name[], int n, const char *pSearchStr);
    返回结果为整形,表示name的第几个元素,若查找失败,则返回-1。

    int sort(char *name[], int n, const char *pSearchStr)
    {
    int i = 0;
    for(i = 0; i < n; ++i)
    {
    if(strstr(name[i], pSearchStr) != NULL)
    {
    return i;
    }
    }
    return -1;
    }

    其中strstr(name[i], pSearchStr) != NULL表示pSearchStr是name[i]的字符串

    点赞 评论

相关推荐 更多相似问题