Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 21
1

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

25.04.2010, 13:27. Просмотров 2743. Ответов 7
Метки нет (Все метки)

Приветик всем.Немогли бы вы мне написать эти 2 програмки

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

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

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2010, 13:27
Ответы с готовыми решениями:

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

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

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

Написать и протестировать метод, который "сжимает" строку
Доброго времени суток, помогите решить задачку: Написать и протестировать метод, который "сжимает"...

7
2 / 2 / 0
Регистрация: 26.03.2009
Сообщений: 7
25.04.2010, 14:04 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;
}
2
0 / 0 / 0
Регистрация: 29.11.2009
Сообщений: 21
25.04.2010, 14:16  [ТС] 3
это первая проограмма я так поняла?)
0
2 / 2 / 0
Регистрация: 26.03.2009
Сообщений: 7
25.04.2010, 14:18 4
да, это первая программа.
0
Эксперт JavaЭксперт С++
8362 / 3583 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
25.04.2010, 14:50 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];
}
0
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 4
13.01.2014, 17:25 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;//возвращаем длину
}
0
72 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
13.01.2014, 17:41 7
assofpresident, Не забывайте
C++
1
delete [ ] buf;
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
13.01.2014, 21:16 8
assofpresident,
1. выделять надо на 1 символ больше, чем длина исходной строки (под терминирующий ноль)
2. использование strlen(text) в условии прекращения цикла не эффективно (тем более если text не меняется)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2014, 21:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Написать и протестировать функцию, которая "переворачивает" строку, передаваемую ей в качестве параметра
Написать и протестировать функцию,которая &quot;переворачивает&quot; строку,передаваемую ей в качестве...

Написать и протестировать функцию, которая "переворачивает" строку, передаваемую ей в качестве параметра.
Написать и протестировать функцию, которая &quot;переворачивает&quot; строку, передаваемую ей в качестве...

Напишите программу, которая "сжимает" заданный текст, т. е. заменяет все подряд идущие пробелы на один
Напишите программу, которая &quot;сжимает&quot; заданный текст, т. е. заменяет все подряд идущие пробелы на...

Преобразовать строку, удалив из нее все запятые, предшествующие первой точке, и заменив знаком "+" все цифры "5"
Дана строка символов, среди которых есть хотябы одна точка. Преобразовать строку, удалив из нее все...

Реализовать программу, которая "сжимает" текстовый файл, считывая его и заменяя все повторяющиеся символы
Реализовать программу, которая &quot;сжимает&quot; текстовый файл, считывая его и заменяя все повторяющиеся...

Дана символьная строка, содержащая буквы, цифры и пробелы. Написать строку задом наперед, удалив из нее все пробелы
Дана символьная строка, содержащая буквы, цифры и пробелы. Написать строку задом наперед, удалив из...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.