比较两个字符串时出现错误“传递 'strcmp' 的参数 2 使指针来自整数而不进行强制转换”

梅尔蒂克斯

我是一名学生,我正在努力完成这个程序,他的目标是:

打印输入中与请求名称同名的产品数据

每次,当我尝试编译程序时,都会出现此警告:

warning: passing argument 2 of ‘strcmp’ makes pointer from integer without a cast

#include <stdio.h>
#include <string.h>
#define N 100
#define M 8

int main (void) {
    int n;
    char name[N][M];
    char code[N][M];
    int price[N];
    char searchname;
    int i;
    int selection;
    int search, x;


    do {
        printf("Insert how many products to register: ");
        scanf("%d", &n);
    } while(n > N);

    for(i = 0; i < n; i++) {
        printf("Insert the name of the product n%d: ", i + 1);
        scanf("%s", name[i]);

        printf("Insert the code of the product registered: ");
        scanf("%s", code[i]);

        printf("Insert the price of the product registered: ");
        scanf("%d", &price[i]);
    }

    do {
        printf("Choose one of the following options:\n\n");
        printf("1) Print name and price of the searched product (code)\n");
        printf("2) Print the product that has the same name as the name inserted\n");
        printf("0) Close the program\n\n");
        printf("Type the number of the option: ");
        scanf("%d", &selection);

        switch(selezione) {
            case 1:
                x = 0;

                printf("Insert the code of the product: ");
                scanf("%d", &search);

                for(i = 0; i < n; i++) {
                    if(code[i] == search) {
                        printf("name: %s | price: %d\n\n", name[i], price[i]);

                        x = 1;
                    }
                }

                if(x == 0) {
                    printf("The searched code doesnt exist\n\n");
                }

            break;
            case 2:
                x = 0;

                printf("Insert the name to search: ");
                scanf("%s", searchname);

                for(i = 0; i < n; i++) {
                    while(strcmp(name[i], searchname) == 0) {
                        printf("Product number %d | Code: %s | Price: %d\n\n", i + 1, code[i], price[i]);
                        x++;
                    }
                }

                if(x == 0) {
                    printf("There are no products with this name\n\n");
                }

            break;
            case 0:
            break;
            default:
                printf("This option doesnt exist");
            break;
        }
    } while(selection!= 0);

    return 0;
}

我搜索了一段时间堆栈溢出,提到这个问题的帖子没有帮助。
我想做的是将字符串name[i]searchname也是字符串的字符串进行比较
我在这里错过了什么吗?

阿玛利

我想做的是将字符串name[i]searchname也是字符串的字符串进行比较

char searchname;- 看起来不像字符串。– 尤金 sh。

你可以试试char searchname[100];…… – 风向标

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传递参数使指针来自整数而不进行强制转换

来自分类Dev

“传递'goodString'的参数1使指针从整数而不进行强制转换”编译器错误-C

来自分类Dev

警告:传递“memcpy”的参数 1 使指针从整数而不进行强制转换

来自分类Dev

有没有办法在返回数组中不使用指针?(警告:传递 'arrangef' 的参数 1 使指针从整数而不进行强制转换。)

来自分类Dev

比较两个字符串,strcmp的问题

来自分类Dev

用==和strcmp比较两个字符串

来自分类Dev

使用strcmp比较两个字符串的问题

来自分类Dev

使用 strcmp,初始化使指针从整数而不进行强制转换

来自分类Dev

将具有两个字符串参数的对象转换为逗号分隔的字符串

来自分类Dev

传递sprintf的参数2会使指针从整数开始而无需强制转换。C警告

来自分类Dev

警告:传递'fopen'的参数2会使指针从整数开始而无需强制转换

来自分类Dev

传递'functions'的参数1可以从整数进行指针转换而无需强制转换

来自分类Dev

比较C中的两个字符串(字符串指针)

来自分类Dev

在bash中将两个字符串与“-”连字符进行比较

来自分类Dev

比较两个字符串并将索引存储在整数数组中

来自分类Dev

比较两个字符串并按字母顺序对其进行排序

来自分类Dev

标准化两个字符串然后进行比较

来自分类Dev

如何使用if语句与两个字符串进行比较?

来自分类Dev

指针比较与字符串比较的性能strcmp

来自分类Dev

二维数组错误 - 使指针指向整数而不进行强制转换

来自分类Dev

传递的参数使指针从整数开始而无需强制转换

来自分类Dev

为什么我可以将两个字符串与“ ==”而不是两个字符数组进行比较?

来自分类Dev

PHP使用通配符方法将两个字符不同的两个字符串进行比较

来自分类Dev

使用命令行参数比较Java中的两个字符串

来自分类Dev

是否具有比较两个字符串的功能,从参数化的点A到点B

来自分类Dev

比较 C 中两个集合位置(整数值)之间两个字符串的两个子字符串

来自分类Dev

使用粘贴功能及其折叠参数粘贴两个字符串

来自分类Dev

如何为两个字符串参数获取正确的printformat类型

来自分类Dev

具有两个字符串参数的Exec存储过程

Related 相关文章

  1. 1

    传递参数使指针来自整数而不进行强制转换

  2. 2

    “传递'goodString'的参数1使指针从整数而不进行强制转换”编译器错误-C

  3. 3

    警告:传递“memcpy”的参数 1 使指针从整数而不进行强制转换

  4. 4

    有没有办法在返回数组中不使用指针?(警告:传递 'arrangef' 的参数 1 使指针从整数而不进行强制转换。)

  5. 5

    比较两个字符串,strcmp的问题

  6. 6

    用==和strcmp比较两个字符串

  7. 7

    使用strcmp比较两个字符串的问题

  8. 8

    使用 strcmp,初始化使指针从整数而不进行强制转换

  9. 9

    将具有两个字符串参数的对象转换为逗号分隔的字符串

  10. 10

    传递sprintf的参数2会使指针从整数开始而无需强制转换。C警告

  11. 11

    警告:传递'fopen'的参数2会使指针从整数开始而无需强制转换

  12. 12

    传递'functions'的参数1可以从整数进行指针转换而无需强制转换

  13. 13

    比较C中的两个字符串(字符串指针)

  14. 14

    在bash中将两个字符串与“-”连字符进行比较

  15. 15

    比较两个字符串并将索引存储在整数数组中

  16. 16

    比较两个字符串并按字母顺序对其进行排序

  17. 17

    标准化两个字符串然后进行比较

  18. 18

    如何使用if语句与两个字符串进行比较?

  19. 19

    指针比较与字符串比较的性能strcmp

  20. 20

    二维数组错误 - 使指针指向整数而不进行强制转换

  21. 21

    传递的参数使指针从整数开始而无需强制转换

  22. 22

    为什么我可以将两个字符串与“ ==”而不是两个字符数组进行比较?

  23. 23

    PHP使用通配符方法将两个字符不同的两个字符串进行比较

  24. 24

    使用命令行参数比较Java中的两个字符串

  25. 25

    是否具有比较两个字符串的功能,从参数化的点A到点B

  26. 26

    比较 C 中两个集合位置(整数值)之间两个字符串的两个子字符串

  27. 27

    使用粘贴功能及其折叠参数粘贴两个字符串

  28. 28

    如何为两个字符串参数获取正确的printformat类型

  29. 29

    具有两个字符串参数的Exec存储过程

热门标签

归档