Для данного массива, мне нужно написать функцию сортировки слов по алфавиту:Сортировка слов в массиве символов
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
в этой проблеме. Никаких полных решений, пожалуйста!
Я заметил, что ваше предложение «Мне не разрешено использовать std :: string в этой проблеме» всего несколько минут назад. Изменили мой ответ. Cheers – sehe