Member 13263262 Ответов: 3

Как сделать сортировку строк по алфавиту?


ниже приведен мой код плз кто нибудь отладит это

Что я уже пробовал:

#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
void SortingOfString(char c[])
{
    int length = strlen(c);
    for(int i = 0; i < length; i++)
    {
        if(int(c[i]) > int(c[i + 1]))
        {
            char temp = c[i+1];
            c[i+1] = c[i];
            c[i] = temp;
        }

    }
cout << c;


}



int main()
{
    char c[50];
    cout << "enter a string" <<endl;
    cin.get(c,50);
    SortingOfString(c);
    
}

3 Ответов

Рейтинг:
2

CPallini

Ваша программа пытается, но безуспешно, отсортировать персонажи в C- как струна.
Либо если вам нужно отсортировать персонажи или фактический строки, Я предлагаю вам использовать C++ Стандартные библиотечные классы для этой цели. Смотрите, например вроде - Справочник по c++ [^].


Рейтинг:
1

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но к более ранним стадиям вы придете позже): тестирование и отладка.

Начните с рассмотрения того, что он делает и чем это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а он удваивает его и печатает ответ, то если ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его-он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он где-то здесь:
private int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить почему. Поставить точку останова на строке:
SortingOfString(c);

и запустите свое приложение. Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она на самом деле делала, когда вы использовали кнопку "шаг вперед" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?

Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он совершенствуется только при использовании!

Да, я, наверное, мог бы сказать вам, в чем "проблема" - но сделать это самому несложно, и при этом вы узнаете что-то действительно стоящее!


Рейтинг:
0

Patrice T

Цитата:
Как сделать сортировку строк по алфавиту?

Прежде всего, ваш код пытается отсортировать содержимое 1 строки, он не пытается сортировать строки.
Цитата:
ниже приведен мой код плз кто нибудь отладит это

Вы не сформулировали проблему. На самом деле ваш код-это вовсе не процедура сортировки.
Примерно половина кода отсутствует, а то, что здесь есть, есть баги.
Length это количество символов в строке, i это от 0 к Length-1, но вы сравниваете с char i+1 который заканчивается 1 char afyer концом строки.

Мое решение: изучите отладчик.
Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя-отладчик.
Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.