首页 > 解决方案 > 尝试用分隔符连接 c 字符串数组

问题描述

这是我的代码

int main(int argc, char *argv[]) {

    char const *strings[10] = {"dhh", "aci", "cdh"};
    join_def(strings, 'l');

    return EXIT_SUCCESS;
}


// part 1 read lines
void join_def(char const **strings, char delim) {
    char *t = new char[100];
    //int length = 0;
    t[0] = '\0';
    int x = sizeof(strings);
    std::cout << delim << std::endl;

    for (int i = 0; i < x; i++) {
        int size = 0;
        while(strings[i][size]!='\0'){
            size++;
            std::cout << strings[i][size] << std::endl;
        }
    }
}

我已经花了几个小时现在我无法连接它对于这个任务,我不能使用 cstring 或 iostream 以外的任何东西,所以请不要建议。

输出必须是 c-string = "dhhlacilcdh"

标签: c++c++11

解决方案


我不确定您要做什么,但这可能有帮助吗?

#include <iostream>

// part 1 read lines
void join_def(char const **strings, char delim)
{
    char *t = new char[100];
    //int length = 0;
    t[0] = '\0';

    int x = 0;
    for (int i = 0; strings[i] != nullptr; i++)
        x += sizeof(strings[i]) - 1;
    
    std::cout << delim << std::endl;

    for (int i = 0; strings[i] != nullptr; i++)
    {
        int size = 0;
        while (strings[i][size] != '\0')
        {
            size++;
            std::cout << strings[i][size] << std::endl;
        }
    }
}

int main(int argc, char *argv[])
{
    char const *strings[] = {"dhh", "aci", "cdh", nullptr};
    join_def(strings, 'l');

    return EXIT_SUCCESS;
}

推荐阅读