初始化字符串的字符数组太长 [英] initializer-string for array of chars is too long

查看:288
本文介绍了初始化字符串的字符数组太长的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不断收到此错误:初始化字符串的字符数组太长
即使我改变NUM和长度为1,但它仍然得到错误:

 的#include<&iostream的GT;
#包括LT&; CString的GT;
使用命名空间std;诠释的main()
{
    const int的NUM = 11;
    const int的长度= 25;
    字符数组[NUM] [长度] = {贝基Warre,555-1223
                                乔发疯,555-0097
                                格日帕尔默,555-8787
                                林恩presnell,555-1212
                                霍利加迪斯,555-8878
                                萨姆·威金斯,555-0998
                                鲍勃·凯恩,555-8712
                                蒂姆·海恩斯,555-7676
                                沃伦·加迪斯,555-9037
                                让詹姆斯,555-4939
                                罗恩 - 帕尔默,555-2893};    字符搜索[长度]
    COUT<< 输入要搜索的字符串:;
    cin.getline(搜索,长度);    字符* PTR = NULL;
    INT I;
    对于(i = 0; I<民;我++)
    {
        PTR =的strstr(数组[NUM],搜索);
        如果(PTR!= NULL)
            COUT<<数组[我]
    }
    如果(PTR == NULL)
        COUT<< 没有找到匹配<< ENDL;    返回0;
}


解决方案

我想这是因为没有在你的数组初始化任何逗号......

 字符数组[NUM] [长度] = {贝基Warre,555-1223
                                                    乔发疯,555-0097
                                                    格日帕尔默,555-8787
                                                    林恩presnell,555-1212
                                                    霍利加迪斯,555-8878
                                                    萨姆·威金斯,555-0998
                                                    鲍勃·凯恩,555-8712
                                                    蒂姆·海恩斯,555-7676
                                                    沃伦·加迪斯,555-9037
                                                    让詹姆斯,555-4939
                                                    罗恩 - 帕尔默,555-2893}

I keep getting this error: initializer-string for array of chars is too long Even if I change num and length to 1, it still gets the error:

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    const int num = 11;
    const int length = 25;
    char array[num][length] = { "Becky Warre, 555-1223"
                                "Joe Looney, 555-0097"
                                "Geri Palmer, 555-8787"
                                "Lynn Presnell, 555-1212"
                                "Holly Gaddis, 555-8878"
                                "Sam Wiggins, 555-0998"
                                "Bob Kain, 555-8712"
                                "Tim Haynes, 555-7676"
                                "Warren Gaddis, 555-9037"
                                "Jean James, 555-4939"
                                "Ron Palmer, 555-2893" };

    char search[length];
    cout << "Enter a string to search: ";
    cin.getline(search, length);

    char *ptr = NULL;
    int i;
    for (i = 0; i < num; i++)
    {
        ptr = strstr(array[num], search);
        if (ptr != NULL)
            cout << array[i];
    }
    if (ptr == NULL)
        cout << "No match found" << endl;

    return 0;
}

解决方案

I think it's because there aren't any commas in your array initialization...

char array[num][length] = { "Becky Warre, 555-1223",
                                                    "Joe Looney, 555-0097",
                                                    "Geri Palmer, 555-8787",
                                                    "Lynn Presnell, 555-1212",
                                                    "Holly Gaddis, 555-8878",
                                                    "Sam Wiggins, 555-0998",
                                                    "Bob Kain, 555-8712",
                                                    "Tim Haynes, 555-7676",
                                                    "Warren Gaddis, 555-9037",
                                                    "Jean James, 555-4939",
                                                    "Ron Palmer, 555-2893" }

这篇关于初始化字符串的字符数组太长的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆