Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302

Работа со строкой без библиотечных функций

24.01.2012, 21:15. Показов 2447. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка типа "abc xyz dea"
На выходе расположить слова в алфавитном порядке первых букв, т.е. "abc dea xyz"
Не могу раскрутить алгоритм...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2012, 21:15
Ответы с готовыми решениями:

БЕЗ использования библиотечных функций
Помогите написать программу... Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы...

Частотный словарь без использования библиотечных функций. Файлы
Добрый день, товарищи!:senor: Помогите, пожалуйста, разобраться с программой. Уже ничего не соображаю.. Недавно стал изучать...

Сортировка строки без библиотечных строковых функций
Помогите, пожалуйста. Напишите часть кода(сортировку). Вводим строку. Нужно отсортировать слова в алфавитном порядке без...

15
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
24.01.2012, 21:18
Это называется сортировка по возрастанию с учетом пробелов.
Сортировку знаем? Знаем. Вперед.
0
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302
24.01.2012, 21:31  [ТС]
нет. сделал много задач на строки(удаление пробелов, замена часто встречающихся символов и много всякой такой штуки) а это не знаю(
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
24.01.2012, 23:16
Разбиваете строки на слова. Помещаете их в вектор. Сортируете вектор. Формируете из него обратно строку. Есть нюансы у этого алгоритма. Но я думаю что в дебри вам лезть не нужно.
0
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302
24.01.2012, 23:22  [ТС]
сорри, но векторы никогда не использовал...это динамический массив?
что посоветуете почитать по этой теме?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
24.01.2012, 23:45
Вы на правильном пути. Думаю читать не имеет смысла, если они вам не нужны. Вектор это динамический массив. Он здесь очень удобен, так как мы заранее не знаем количество слов. Но ведь можно выделить и памяти с запасом. Вариантов много. Ну а почитать лучше документацию по ним. Но сразу с STL не разберешься, если пробел большой
1
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
24.01.2012, 23:50
тока не ясно получается - библиотечные алгоритмы над строками использовать нельзя, а вектора значит можно?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
24.01.2012, 23:57
Paporotnik, ну так ведь все можно и самому реализовать. Так стоп. О чем идет речь: std::string или char* ?
0
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302
25.01.2012, 00:09  [ТС]
go, char st[20]={.....}. Не стринг
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
25.01.2012, 01:06
Сортировать численные массивы умеете?
0
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302
25.01.2012, 01:11  [ТС]
Chelioss, конечно, пузырьком, вставкой, вспомогательными массивами - все эт умеем)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.01.2012, 11:43
Цитата Сообщение от fruktik Посмотреть сообщение
Дана строка типа "abc xyz dea"
На выходе расположить слова в алфавитном порядке первых букв, т.е. "abc dea xyz"
Не могу раскрутить алгоритм...
- вот вникай в этот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
 
int main()
{
    int i,j, nWords = 0;//Число слов в тексте
    string text;
    string word; 
    stringstream ss;
    cout<<"Enter string\n";
    getline(cin,text);
    ss.str(text);
    //Сначала посчитаем число слов
    while(ss>>word)
        nWords++;
    //Теперь наш стринг-поток надо "перезагрузить"
    ss.clear();
    ss.seekg(0,ios::beg);
    ss.str(text);//Заново впихиваем введенный текст в поток
    //Выделим память под массив слов
    string * array = new string[nWords];
    for(i = 0; i < nWords; i++)
        ss>>array[i];
    //Ну а теперь сортируем прямЫм выбором
    for(    i = 0; i < nWords; i++)
    for(j = i + 1; j < nWords; j++)
    {
        if((array[j])[0] < (array[i])[0])
        {
            word = array[i];
            array[i] = array[j];
            array[j] = word;
        }
    }
    cout<<"Sorted words\n";
    for(i = 0; i < nWords; i++)
        cout<<array[i]<<" ";
    cout<<endl;
    system("pause");
    delete [] array;//ну и чистим память при выходе
    return 0;
}
Миниатюры
Работа со строкой без библиотечных функций  
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.01.2012, 11:45
PS:Такой ввод в VisualStudio 6.0 требует нажатия Enter 2 раза
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
getline(cin,text);
, на 9-й версии всё работает после 1-го нажатия...
0
 Аватар для fruktik
33 / 33 / 1
Регистрация: 03.03.2011
Сообщений: 302
25.01.2012, 14:42  [ТС]
-=ЮрА=-, спасибо за труды, но пользоваться библиотекой стринг нельзя(
только массив типа ЧАР и никаких библиотечных функций
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.01.2012, 14:47
Цитата Сообщение от fruktik Посмотреть сообщение
-=ЮрА=-, спасибо за труды, но пользоваться библиотекой стринг нельзя(
только массив типа ЧАР и никаких библиотечных функций
- т.е всё делать в циклах - без проблем....
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
25.01.2012, 14:55
Цитата Сообщение от fruktik Посмотреть сообщение
Chelioss, конечно, пузырьком, вставкой, вспомогательными массивами - все эт умеем)
Тогда представьте, что символьный массив - это численные массив и сортируйте его как численный.
C++
1
2
3
for( int i = отсюда; i < дотсюда; --/++ i )
           for( int j = отсюда; j < дотсюда; --/++j )
                  if( str[] != ' ' ) // тут как-то вставить if, чтобы пробел сортировка не трогагала
Вот вам только надо правильно во вложенный цикл вставить if( str[] != ' '), чтобы пробел не сортировал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2012, 14:55
Помогаю со студенческими работами здесь

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

Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы строку
Написать программу, которая (без использования библиотечных функций для обработки строк), копировала бы строку введённую пользователем с...

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого числа и суммой всех остальных. ...

Использование библиотечных функций stdio.h
1. Дан текстовый фал, содержащий целые числа, разделенные пробелами. Определить является ли последовательность чисел, находящихся в файле,...

Использование библиотечных функций string.h
Задание 3. Использование библиотечных функций string.h 1. Даны текстовая строка и слово (например, ba). Напечатать все слова, входящие в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru