gpt4 book ai didi

c++ - 在 dev c++ 中使用 strchr(),从 'char' 到 'int' 的无效转换 [-fpermissive]

转载 作者:行者123 更新时间:2023-11-28 04:08:26 25 4
gpt4 key购买 nike

我希望通过我输入的内容创建的角色找到它,所以这里是代码,但它总是在“hasil=strchr(str,karakter);”中出错。它说“从‘char’到‘int’的无效转换[-fpermissive]”

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
using namespace std;

int main(void){
char str[100];
char karakter[50];
char *hasil;
hasil=strchr(str,karakter);

cout<<"Input String : "; gets(str);
cout<<"Input Karakter : "; gets(karakter);
printf("\nResult : %s\n",hasil);
printf("karakter %c founded in index %d",karakter,(hasil-str));
getch();
return 0;
}

最佳答案

您的代码中存在多个问题。

  1. strchr 接受一个 char * 作为第一个参数,一个 char 作为第二个参数,你给了一个 char * 。这是手册 http://man7.org/linux/man-pages/man3/strchr.3.html
  2. 您应该在 gets 之后调用函数 strchr 来初始化 strkarakter
  3. 您应该使用 fgets 而不是 gets,如果用户输入溢出您的缓冲区,您的程序将被终止

修改后应该是这样

    #include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
using namespace std;

int main(void){
char str[100];
char karakter;
char *hasil;

cout<<"Input String : "; fgets(str, 100, stdin);
cout<<"Input Karakter : "; fgets(&karakter, 1, stdin);
hasil = strchr(str,karakter);
printf("\nResult : %s\n",hasil);
printf("karakter %c founded in index %d",karakter,(hasil-str));
getch();
return 0;
}

关于c++ - 在 dev c++ 中使用 strchr(),从 'char' 到 'int' 的无效转换 [-fpermissive],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58290275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com