Форум программистов, компьютерный форум CyberForum.ru

Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Sabinka
 Аватар для Sabinka
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 21
25.04.2010, 13:27     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #1
Приветик всем.Немогли бы вы мне написать эти 2 програмки

Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.

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

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2010, 13:27     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.
Посмотрите здесь:

C++ Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.
C++ Написать и протестировать функцию,которая "переворачивает" строку,передаваемую ей в качестве параметра
создать функцию которая формирует строку, включив в нее все совпадающие символы двух строк C++
C++ Функция: Написать и протестировать функцию, которая "сжимает" строку, удаляя из неё все пробелы.
Написать функцию, которая удаляет все лишние пробелы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
awdrg
2 / 2 / 1
Регистрация: 26.03.2009
Сообщений: 7
25.04.2010, 14:04     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #2
удаление пробелов, рабочая основа:

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
#include <string.h>
#include <iostream>
void compress(char * text);
const int strsize = 30;
main()
{
   char text[strsize] = "some text with spaces";
   compress(text);
   std::cout << text << std::endl;
   return 0;
}
void compress(char * text)
{
   char * buf = new char[30];
   int size = strlen(text), a = 0, b = 0;
   for (a = 0; a < size; a++)
   {
      if (text[a] == ' ')
         continue;
      else {
         buf[b] = text[a];
         b++; }
    }
    strcpy(text, buf);
    delete [ ] buf;
    return;
}
Sabinka
 Аватар для Sabinka
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 21
25.04.2010, 14:16  [ТС]     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #3
это первая проограмма я так поняла?)
awdrg
2 / 2 / 1
Регистрация: 26.03.2009
Сообщений: 7
25.04.2010, 14:18     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #4
да, это первая программа.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
25.04.2010, 14:50     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #5
Цитата Сообщение от Sabinka Посмотреть сообщение
Написать и протестировать функцию, которая находит в массиве минимальный по модулю элемент и заменяет им все элементы с нечетными номерами.
C++
1
2
3
4
5
6
7
8
9
void replace(double * mas, int size)
{
    int i, imin = 0;
    for(i = 1; i < size; ++i)
        if(fabs(mas[i]) < fabs(mas[imin]))
            imin = i;
    for(i = 1; i < size; i += 2)
        mas[i] = mas[imin];
}
assofpresident
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 4
13.01.2014, 17:25     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #6
Мой вариант:
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
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
using namespace std;
 
int compress(char * text);//объявление функции
const int strsize = 40;//размер строки
 
int main()
{
    SetConsoleCP(1251);//кодировка ввода
    SetConsoleOutputCP(1251);//кодировка вывода
 
    char text[strsize] = "текст с пробелами был";//исходный текст
    int size = compress(text);//вызываем функцию которая возвращает сжатый текст
    cout<<endl;//перевод строки
    for(int i = 0; i < size; i++)//затем до конца строки без пробелов
    {
        cout<<text[i];//выводим на экран
    }
    _getch();
    return 0;
}
 
int compress(char * text)
{
    char * buf = new char[strlen(text)];//получив строку, создаем такую же
    int b = 0;// мчетчик символов в новой строке
    for(int i = 0; i<strlen(text); i++)//по всем символам строки text
    {
        if(text[i] == ' ')//если пробел
            continue;//то пропускаем всё
        else//иначе
        {
            buf[b] = text[i];//записываем в новую строку
            b++;//и ставим позицию ввода на следующий символ
        }
    }
    strcpy(text, buf);//после отсеивания всех пробелов копируем полученную строку в исходную
    return b;//возвращаем длину
}
mishelle92
57 / 56 / 19
Регистрация: 09.10.2012
Сообщений: 179
Завершенные тесты: 1
13.01.2014, 17:41     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #7
assofpresident, Не забывайте
C++
1
delete [ ] buf;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 21:16     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.
Еще ссылки по теме:

C++ Написать и протестировать функцию, которая преобразует строку шестнадцатеричных цифр в эквивалентное ей целое десятичное число
Написать программу, которая заменяет в указанном слове все буквы "b" на сочетание "ky" C++
Написать и протестировать функцию , которая преобразует строку двоичных цифр в эквивалентное ей целое число C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
13.01.2014, 21:16     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. #8
assofpresident,
1. выделять надо на 1 символ больше, чем длина исходной строки (под терминирующий ноль)
2. использование strlen(text) в условии прекращения цикла не эффективно (тем более если text не меняется)
Yandex
Объявления
13.01.2014, 21:16     Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.
Ответ Создать тему
Опции темы

Текущее время: 14:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru