无法转换';字符(*)[30]';至';字符*';对于参数';1';至';整数搜索(char*,char*)&x27; #包括 字符名[100][30]; 字符作者[100][30]; char publisher[100][30]; 整数输入输出[100]; int i=0; 整数; void add_book(); int search_book(); 作废打印(内部id_打印); int搜索(char*text1,char*text2); int search_book(){ int选择搜索; char-dumpchar[30]; printf(“1.搜索标题:”); printf(“2.要搜索的作者:”); printf(“3.要搜索的名称:”); printf(“现在你想要什么?:”; scanf(“%d”,选择搜索(&U); 如果(选择搜索==1){ printf(“输入要搜索的标题:”); scanf(“%s”,dumpchar); //搜索引擎制作 //字符转储字符 **打印(搜索(名称,dumpchar))** }else if(选择_search==2){ printf(“输入要搜索的作者:”); scanf(“%s”、&dumpchar); 打印(搜索(作者、转储字符)); }else if(选择_search==3){ printf(“输入Publisher进行搜索:”; scanf(“%s”、&dumpchar); 打印(搜索(发布者、转储字符)); }否则{ 打破 } 返回1; printf(“成功保存到目录%d\n”,i); } 整数搜索(字符(*text1)[30],字符*text2) { int search_i=0; int search_j=0; 而(*text1){ 如果(*text2==*text1){ 而(*text2=*text1){ text2++; text1++; 搜索_j++; 如果(*text2==NULL){ 返回搜索_i; } } text2=text2-search_j; text1=text1-search_j; } text1++; 搜索_i++; } 返回-1; }

无法转换';字符(*)[30]';至';字符*';对于参数';1';至';整数搜索(char*,char*)&x27; #包括 字符名[100][30]; 字符作者[100][30]; char publisher[100][30]; 整数输入输出[100]; int i=0; 整数; void add_book(); int search_book(); 作废打印(内部id_打印); int搜索(char*text1,char*text2); int search_book(){ int选择搜索; char-dumpchar[30]; printf(“1.搜索标题:”); printf(“2.要搜索的作者:”); printf(“3.要搜索的名称:”); printf(“现在你想要什么?:”; scanf(“%d”,选择搜索(&U); 如果(选择搜索==1){ printf(“输入要搜索的标题:”); scanf(“%s”,dumpchar); //搜索引擎制作 //字符转储字符 **打印(搜索(名称,dumpchar))** }else if(选择_search==2){ printf(“输入要搜索的作者:”); scanf(“%s”、&dumpchar); 打印(搜索(作者、转储字符)); }else if(选择_search==3){ printf(“输入Publisher进行搜索:”; scanf(“%s”、&dumpchar); 打印(搜索(发布者、转储字符)); }否则{ 打破 } 返回1; printf(“成功保存到目录%d\n”,i); } 整数搜索(字符(*text1)[30],字符*text2) { int search_i=0; int search_j=0; 而(*text1){ 如果(*text2==*text1){ 而(*text2=*text1){ text2++; text1++; 搜索_j++; 如果(*text2==NULL){ 返回搜索_i; } } text2=text2-search_j; text1=text1-search_j; } text1++; 搜索_i++; } 返回-1; },c,visual-c++,C,Visual C++,每当我尝试在搜索函数中传递这两个参数时 发生此错误,请帮助我调整此错误 程序指示导致错误的部分:打印(搜索(名称,dumpchar)) 表示[Error]无法将参数“1”的“char()[30]”转换为“char”,并将其转换为“int search(char*,char*)” 请有人帮忙 原型声明 #include <stdio.h> char name[100][30]; char author[100][30]; char publisher[100][30]; int in_

每当我尝试在搜索函数中传递这两个参数时

发生此错误,请帮助我调整此错误

程序指示导致错误的部分:打印(搜索(名称,dumpchar))

表示[Error]无法将参数“1”的“char()[30]”转换为“char”,并将其转换为“int search(char*,char*)”


请有人帮忙

原型声明

#include <stdio.h>
char name[100][30];
char author[100][30];
char publisher[100][30];
int in_out[100];
int i=0;
int dumpnumber;

void add_book();
int search_book();
void printing(int id_print);
int search(char *text1, char *text2);

int search_book(){
    int select_search;  
    char dumpchar[30];

    printf("1. Title to search : ");
    printf("2. Author to search : ");
    printf("3. Name to search : ");
    printf("Now What do you want ? : ");
    scanf("%d", &select_search);
    if(select_search==1){

        printf("Enter Title to search : ");
        scanf("%s", dumpchar);
        //Search Engine Making
        //char dumpchar
        **printing(search(name,dumpchar));**

    }else if(select_search==2){

        printf("Enter Author to search : ");
        scanf("%s", &dumpchar);
        printing(search(author,dumpchar));
    }else if(select_search==3){

        printf("Enter Publisher to search : ");
        scanf("%s", &dumpchar);
        printing(search(publisher,dumpchar));
    }else{
        break;
    }

    return 1;

    printf("Succeed Saved in Directory %d \n",i);
}


int search(char (*text1)[30], char *text2)
{
    int search_i=0;
    int search_j=0;
    while(*text1){
        if(*text2==*text1){
            while(*text2=*text1){
            text2++;
            text1++;
            search_j++;
            if(*text2==NULL){
                return search_i;
            }   
            }
        text2=text2-search_j;
        text1=text1-search_j;   
        }
        text1++;
        search_i++;
    }
    return -1;
}
错误且与函数定义不匹配

使用正确的方法:

int search(char *text1, char *text2);

还要注意,
scanf(“%s”和&dumpchar)通过将指向类型错误的对象的指针传递到
scanf()
来调用未定义的行为。使用
scanf(“%s”,dumpchar)就像您在前一行中所做的那样<代码>扫描(“%29s”,dumpchar)
更好,因为指定了最大长度以避免缓冲区溢出。

变量
name
是字符数组的数组,也就是说,它是字符串数组。
search
函数不接受字符串数组作为其第一个参数,只接受单个字符串(指向
char

至少您是这样声明
search
函数的。您还将得到一个错误,因为函数的定义与声明不匹配


若要解决此问题,请使声明与定义匹配。

在任何情况下,该函数都无效且没有意义。:)您的搜索函数执行“while(*text2=*text1)`,它将字符从text1复制到text2,可能您的意思是使用==there。请相信错误:
无法转换'char()[30]'到参数'1'的'char'到'int search(char*,char*)'
。在过去的20年中,编译器错误消息已经投入了大量的精力,以提供一个关于问题到底是什么的简明描述。一开始它们看起来很神秘,但如果你放慢速度,想想编译器试图告诉你的是什么,100次中有99次,它告诉了你问题到底是什么。非常感谢你,我有点沮丧,没有仔细注意。但是谢谢你的好意!!!
int search(char (*text1)[30], char *text2);