#include
#include
using namespace std;
string sorting(string str)
{
int k = 0;
for (int i = 0; i < str.length(); i++) { // Считаем пробелы
if (str[i] == ' ') {
k++;
}
}
// Динамически выделяем память для массива строк
string* words = new string[k + 1];
k = 0;
int word_begin = 0, word_end = 0;
for (int i = 0; i < str.length(); i++) // Заполняем массив строк
{
if ((str[i] == ' ') || (i == str.length() - 1))
{
word_end = i;
for (int j = word_begin; j words[j])
{
tmp = words[i];
words[i] = words[j];
words[j] = tmp;
}
}
str = "";
for (int i = 0; i < k; i++) { // Собираем отсортированную строку
str += words[i] + " ";
}
// Освобождаем память для массива строк
delete[] words;
return str;
}
int main()
{
setlocale(0, "Russian");
string str;
cout str;
getline(cin, str);
str = sorting(str);
cout
C/C++
Отсортировать слова в лексикографическом порядке (C++)
Почти всё готово, только при вводе слов с клавиатуры возникает проблема, что некоторые символы (а иногда и вовсе слова) удаляются. В чём может быть проблема?
лишнее:
cin >> str;
а в строке
for (int j = word_begin; j
#include
#include
#include
#include
#include
using namespace std;
string sorting(const string& line) {
istringstream iss(line);
string word;
vector words;
while (iss >> word) words.push_back(word);
sort(words.begin(), words.end());
stringstream ss;
for (const auto& item : words) ss
#include
#include
using namespace std;
string sorting(string str)
{
int k = 0;
for (int i = 0; i < str.length(); i++) { // Считаем пробелы
if (str[i] == ' ') {
k++;
}
}
// Динамически выделяем память для массива строк
string* words = new string[k + 1];
k = 0;
int word_begin = 0, word_end = 0;
for (int i = 0; i < str.length(); i++) // Заполняем массив строк
{
if ((str[i] == ' ') || (i == str.length() - 1))
{
word_end = i;
for (int j = word_begin; j words[j])
{
tmp = words[i];
words[i] = words[j];
words[j] = tmp;
}
}
str = "";
for (int i = 0; i < k; i++) { // Собираем отсортированную строку
str += words[i] + " ";
}
// Освобождаем память для массива строк
delete[] words;
return str;
}
int main()
{
setlocale(0, "Russian");
string str;
cout
Похожие вопросы
- Распечатать слова данного текста в обратном порядке c++ Надо переделать с помощью указателей
- С++ | Надо отсортировать двухмерный массив N*M в порядке возрастания и спадания ПО КАЖДОМУ СТОЛБЦУ ОТДЕЛЬНО
- C++ Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool
- Как отсортировать массив дат в СИ
- Какие отличия(простыми словами) в языках программирования Java и C++? Что лучше изучать. У какого больше возможностей?
- Какие из этих книг вы посоветуете прочесть в первую очередь чтобы повысить свои знания в C/C++?
- Задача по C++
- День добрый \[-_-]/ вопрос по вузовскому программированию на си(C)
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?