C++ C字符串数组的运行时检查失败#2-s
我有以下两个C字符串的2D数组。我试图使用strcpy()函数将第一个复制到第二个。但是,我不断得到运行时错误C++ C字符串数组的运行时检查失败#2-s,c++,C++,我有以下两个C字符串的2D数组。我试图使用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
#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;
}
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
使用名称空间std;
int main(){
char word1[3][3]={“你好”,“你好”,“你好”,“你好”};
char-word2[3][3]={“Steve”、“Pei”、“Frank”};
字符温度[]=“”;
对于(int i=0;i<3;i++){
strcpy(临时,字1[i]);
strcpy(字1[i],字2[i]);
strcpy(word2[i],temp);
}
对于(int i=0;i<3;i++){
在你的代码中我发现了几个错误
- 您的字符数组
word1
,word2
,temp
未正确初始化。您需要增加数组的大小
- 在循环中使用3。如果单词长度大于4,则会中断输出
所以这里我给你一个小的解决方案。但是最好使用用户输入
作为数组的大小
,这样任何输入都可以正确匹配
#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <iostream>
using namespace std;
int main() {
char word1[10][10] = { "Hello", "Bonjour", "Ni Hao" };//increase array size to fit word
char word2[10][10] = { "Steve", "Pei", "Frank" };//same here
char temp[10] = "";//same here
for (int i = 0; i < 10; i++) {
strcpy(temp, word1[i]);
strcpy(word1[i], word2[i]);
strcpy(word2[i], temp);
}
for (int i = 0; i <10; i++) {
cout << word2[i] << " ";
}
cout << endl;
}
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
使用名称空间std;
int main(){
char-word1[10][10]={“你好”,“你好”,“你好”};//增加数组大小以适合word
char word2[10][10]={“Steve”、“Pei”、“Frank”};//此处相同
char temp[10]=“”;//此处相同
对于(int i=0;i<10;i++){
strcpy(临时,字1[i]);
strcpy(字1[i],字2[i]);
strcpy(word2[i],temp);
}
对于(int i=0;我合理地确定a)如果你提供了实际的运行时错误,你会得到更好的帮助,而B)你应该为每个字符串提供足够的空间。如果你考虑终止3,没有一个字符串适合于一个字符数组。首先尝试一些更简单的方法,比如使用C++ <代码> STD::String < /Cord>,然后再留这个硬的东西?你使用的是两个一维数组的“C字符串”,BTW.是你的目标,将一个“列”(或一行)添加到一个实际的2D数组中或覆盖第一个数组?