对于给定的数组,我需要编写一个函数来按字母顺序对单词进行排序:
char strings [][10] = {
"hello",
"world",
"computers",
"are",
"awesome"
};
我尝试sortWords
使用插入排序来编写函数,但我认为我的交换函数不起作用:
void swap(char *e1, char *e2) {
int tmp = *e1;
*e1 = *e2;
*e2 = tmp;
}
void sortWords( char (* words2Darray)[10], unsigned short length ) {
unsigned int i, curPos;
char curChars[10];
for(i = 1; i < length; i++) {
// Copy the current word into curChars
strncpy_s(curChars, words2Darray[i], 10);
curPos = i;
// Compare and move the word to the correct position
while(curPos > 0 && strcmp(curChars, words2Darray[i-1]) > 0) {
swap(words2Darray[curPos], words2Darray[curPos-1]);
curPos--;
}
}
}
我尝试使用本地 Windows 调试器调试我的代码,发现它curChars
被正确复制。
有人可以向我解释我做错了什么以及我应该如何解决这个问题?我不允许std::string
在这个问题中使用。请没有完整的解决方案!