首页 > 解决方案 > 错误:“char 数组初始化程序中的多余元素”

问题描述

如您所见,我正在尝试检查用户输入的元素是否存在于我的数组中。arr但是在声明和定义的那一行会出现以下错误:

1)[Error] excess elements in char array initializer 
2)[Error] (near initialization for 'arr')

这是我的代码:

#include <stdio.h>

int main(){
    char word;
    scanf("%d",&word);
    char arr[7]={"break", "case", "continue", "default", "else", "defer", "for"};
    int i,n=7;
    for(i=0;i<n;i++){
        if(word==arr[i]){
            printf("Keyword Found");
        }
        else{
            printf("Keyword Not Found");
        }
    }
}

标签: arrayscc-stringsstring-comparison

解决方案


char arr[7]={"break", "case", "continue", "default", "else", "defer", "for"};

你的 arr 是一个字符数组而不是字符串数组。您可以使用结构的概念制作一个字符串数组。像这样,

char arr[10];
struct arr_str{
    char arr[10];
};
int main(){
    struct arr_str array[7];   // array of strings.
    return 0;
}

或者您也可以简单地制作一个二维字符数组(数组数组)。

char arr[7][10];

推荐阅读