Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 初始化函数c++;_C++ - Fatal编程技术网

C++ 初始化函数c++;

C++ 初始化函数c++;,c++,C++,我应该编写一个函数,将给定字符串初始化为多维数组words[word][size]。我的代码输出了一个相当奇怪的结果,我不确定我到底做错了什么。空格字符“”在我的测试用例中充当分隔符,我应该使它使每个单词占据一行。我的代码是: void initialize(char words[][MAX_WORD_SIZE], const char str[], char delimiter) { for(int i = 0, k = 0; i < MAX_WORD; i++) {

我应该编写一个函数,将给定字符串初始化为多维数组words[word][size]。我的代码输出了一个相当奇怪的结果,我不确定我到底做错了什么。空格字符“”在我的测试用例中充当分隔符,我应该使它使每个单词占据一行。我的代码是:

void initialize(char words[][MAX_WORD_SIZE], const char str[], char delimiter)
{
    for(int i = 0, k = 0; i < MAX_WORD; i++)
    {
        if(str[k] != delimiter)
        {
            strcpy(words[i], &str[k]);
        }
    }
    cout << *words;
 }

我不明白我做错了什么。

我想你忘了增加k:

strcpy(words[i], &str[k++]);

依我看你的代码不安全


每次将输入字符串的所有内容复制到固定大小的内存中时;您可以很容易地使用以下代码执行无效写入操作:,当我需要时:我们正在处理等等……如果您仔细查看,“我们正在处理pr”正好是20个字符。也许你也失踪了?我对编程很陌生。我不知道你们所说的无效写入到底是什么意思?无效写入发生在你们不受控制地将数据写入内存地址的地方。如果字符串长度超过MAX\u WORD*MAX\u WORD\u大小的字符数,您将写出单词capacity您真正想要的输出是什么?我已经为你们做了一些工作,但我想先知道这个问题。我想在数组的每个元素中输入一个单词。那么我将有:单词[1]=我们单词[2]=是单词[3]=工作
strcpy(words[i], &str[k++]);