运行时检查失败#2 - s表示C字符串数组

时间:2016-11-13 08:27:34

标签: c++

我有以下两个C-Strings的二维数组。我试图使用strcpy()函数将第一个复制到第二个。但是,我不断收到运行时错误。

#define _CRT_SECURE_NO_WARNINGS

#include <cstring>
#include <iostream>

using namespace std;

int main() {

    char word1[3][3] = { "Hello", "Bonjour", "Ni Hao" };
    char word2[3][3] = { "Steve", "Pei", "Frank" };

    char temp[] = "";

    for (int i = 0; i < 3; i++) {
        strcpy(temp, word1[i]);
        strcpy(word1[i], word2[i]);
        strcpy(word2[i], temp);
    }


    for (int i = 0; i < 3; i++) {
        cout << word2[i] << " ";
    }

    cout << endl;
}

1 个答案:

答案 0 :(得分:0)

在你的代码中我发现了一些错误。

  • 您的char数组word1word2temp未正确初始化。您需要增加size的{​​{1}}。
  • in循环使用3.如果你的单词的长度超过4,则会打破你的输出。

所以我在这里给你一点解决方案。但是最好使用array作为user input的大小,这样任何输入都可以正确匹配。

array