C++ c++;返回错误字符的数组
当前,以下代码返回的数组末尾附加了符号时出现问题。这是我能得到的最小代码,以便重现错误。是什么导致了这个问题?我假设数组中的数字以某种方式被解释为ascii符号,但我不知道这是在哪里发生的C++ c++;返回错误字符的数组,c++,arrays,pointers,C++,Arrays,Pointers,当前,以下代码返回的数组末尾附加了符号时出现问题。这是我能得到的最小代码,以便重现错误。是什么导致了这个问题?我假设数组中的数字以某种方式被解释为ascii符号,但我不知道这是在哪里发生的 #include "stdafx.h" #include <iostream> #include <iomanip> #include <string> using namespace std; const int numRow = 6; const int numCo
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
const int numRow = 6;
const int numCol = 26;
char letters[numRow][numCol] = {
{ 'm', 'w', 'r', 'u', 't', 'v', 'n', 'j', 'd', 'j', 'y', 'k', 'k', 'g', 'g', 'd', 'c', 'v', 'n', 'x', 'm', 'd', 'q', 'y', 'u', 't' },
{ 'y', 'e', 'r', 'y', 'e', 't', 'w', 'y', 'u', 'w', 'r', 's', 'f', 'h', 's', 'g', 'a', 'a', 'g', 'd', 'b', 'b', 'b', 'g', 'x', 'z' },
{ 'j', 'd', 'j', 'y', 'k', 'k', 'g', 'g', 'd', 'c', 'v', 'n', 't', 'w', 'y', 'u', 'w', 'r', 's', 'f', 'h', 's', 'g', 'a', 'a', 'g' },
{ 'y', 'e', 't', 'w', 'y', 'u', 'w', 'r', 's', 'f', 'h', 'j', 'y', 'k', 'k', 'g', 'g', 'd', 'c', 'v', 'g', 'a', 'a', 'g', 'd', 'b' },
{ 'e', 'r', 'y', 'e', 't', 't', 'v', 'n', 'j', 'd', 'j', 'y', 'k', 'w', 'r', 's', 'f', 'h', 's', 'g', 'g', 'g', 'd', 'c', 'v', 'g' },
{ 'y', 'u', 'w', 'r', 's', 'f', 'h', 's', 'g', 's', 'f', 'h', 's', 'g', 'a', 'a', 'g', 'd', 'w', 'y', 'u', 'w', 'r', 's', 'f', 'h' }
};
int main()
{
char *ltrptr;
ltrptr = &letters[0][0];
const int arraySize = 6 * 26;
int answer = 0;
cout << " Select row for sort: " << endl;
cin >> answer;
char newArray[numCol];
char *ltrptr2;
ltrptr2 = &newArray[0];
for (int i = 0; i < numCol; i++){
newArray[i] = letters[answer - 1][i];
}
cout << "Selected row: before" << newArray << endl;
selectionSort(ltrptr2, numCol, ascending);
cout << "Selected row: after " << newArray << endl;
getchar();
return 0;
}
#包括“stdafx.h”
#包括
#包括
#包括
使用名称空间std;
常数int numRow=6;
常数int numCol=26;
字符字母[numRow][numCol]={
{'m','w','r','u','t','v','n','j','d','j','y','k','g','g','d','c','v','n','x','m','d','q','y','u','t'},
{'y','e','r','y','e','t','w','y','u','w','r','s','f','h','s','g','a','a','g','d','b','b','g','x','z'},
{'j','d','j','y','k','k','g','g','d','c','v','n','t','w','y','u','w','r','s','f','h','s','g','a','g'},
{'y','e','t','w','y','u','w','r','s','f','h','j','y','k','k','g','g','d','c','v','g','a','a','g','d','b'},
{'e','r','y','e','t','t','v','n','j','j','y','k','w','r','s','f','h','s','g','g','d','c','v','g'},
{'y','u','w','r','s','f','h','s','f','h','s','g','a','g','d','w','y','u','w','r','s','f','h'}
};
int main()
{
字符*ltrptr;
ltrptr=&字母[0][0];
常数int arraySize=6*26;
int-answer=0;
答不上来;
char newArray[numCol];
字符*ltrptr2;
ltrptr2=&newArray[0];
对于(int i=0;i cout如果你真的包括你得到的输出和你期望的输出(以及给出的输入),而不是试图描述输出,那会更好
但是,您的代码有一个明显的错误,这与您模糊的描述是一致的:您没有在字符数组中放入C字符串,但您尝试将其打印为包含C字符串
(特别是,要在字符数组中存储C字符串,必须先存储字符序列,然后再存储空字符)试着在调试模式下运行它,失败的话,试一下-march=sparc3
是不是selectionSort
一个windows的东西,或者这不是一个完整的例子?你的例子,请提供一个!嘿,请不要投票,因为我复制了一个我不想复制的部分。很抱歉这个糟糕的问题哈。selectionSort只是一个用于此目的的函数rting,但它不应该是示例的一部分,因为在调用之前就发生了错误。此外,我想补充一点,我正在尝试调用2d数组中的特定行。我将发布输入和输出屏幕截图。好的,我将数组放入for循环,它更正了问题。谢谢。我应该发布更正的代码吗?