-2
我有以下兩個C字符串的二維陣列。我正在嘗試使用strcpy()函數將第一個複製到第二個。但是,我不斷收到運行時錯誤。運行時檢查失敗#2 - s的C字符串陣列
#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;
}
我相當確定a)如果您提供了實際的運行時錯誤,您會得到更好的幫助,b)您應該爲每個字符串提供足夠的空間。如果考慮終止零,則不存在適合3個字符數組的單個字符串。 –
此外,字符串'temp'甚至比''單詞'短,並且不能容納任何東西。爲什麼不先嚐試一些更簡單的方法,比如使用C++'std :: string'並且稍後將這些東西留下? –
您正在使用兩個「C-strings」的1D **陣列,BTW。您的目標是將「列」(或行)添加到實際的二維數組或覆蓋第一個數組? –