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

Написать функцию, которая удаляет все лишние пробелы

02.05.2013, 18:18. Просмотров 1042. Ответов 5
Метки нет (Все метки)

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


А также есть такой код:

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 "stdafx.h"
 
#include <cmath>
 
#include <iostream>
 
using namespace std;
 
 
 
#define SIZE 13
 
int main()
{
   int a[SIZE];
   int i = 0, j = 0;
 
   for(i = 0; i < SIZE; ++i)
      a[i] = rand() % 9;
 
   for(i = 0; i < SIZE; ++i)
      printf("%d ", a[i]);
   printf("\n");
 
   int max = 0, cur_max = 0, nmax = a[0];
   for(i = 0; i < SIZE; ++i)
   {
      if(cur_max > max)
      {
         nmax = a[i-1];
         max = cur_max;
      }
 
      cur_max = 0;
      for(j = i; j < SIZE; ++j)
         if(a[i] == a[j])
            ++cur_max;
   }
 
   printf("n = %d, in = %d\n", nmax, max);
 
   system("pause");
   return 0;
}
Необходимо переделать его с использованием указателей.

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

Описать функцию, которая удаляет из строки все лишние пробелы
Помогите пожалуйста решить! Заранее благодарен!) Описать функцию, которая удаляет из строки все...

Описать функцию, которая удаляет из строки все лишние пробелы
Нужно чтобы символы из строки записались в vector поэлементно. Но когда использую stringstream, то...

Разработать и испытать функцию, которая удаляет из строки все лишние пробелы
Разработать и испытать функцию, которая удаляет из строки все лишние пробелы. Пробелы считаются...

Напишите функцию, которая убирает все лишние пробелы и табуляции в строке
Напишите пожалуйста функцию, которая убирает все лишние пробелы и табуляции в строке. Добавлено...

5
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
02.05.2013, 18:45 2
nimso_3d, а каким образом связано задание про пробелы с приведенным кодом? Если это два разных задания, то надо бы разбить на 2 разные темы.
0
1450 / 787 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.05.2013, 19:29 3
Регулярные выражения, поиск и замена:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <boost/regex.hpp>
 
std::string erase_spaces(const std::string& s)
{
    boost::regex reg("\\s{2,}");
    return std::string(boost::regex_replace(s, reg, " "));
}
 
int main()
{
    std::cout<<erase_spaces("Some   text            text  other      text  ")<<"\n";
    std::cout<<erase_spaces("Another                text")<<"\n";
    
    std::cout<<"\n";
    return 0;
}
1
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 2
02.05.2013, 19:51  [ТС] 4
Цитата Сообщение от Tulosba Посмотреть сообщение
nimso_3d, а каким образом связано задание про пробелы с приведенным кодом? Если это два разных задания, то надо бы разбить на 2 разные темы.
Да, тут да разных задания. Впервые на форуме, впреть учту...


yuron_477
Спасибо огромное за помощь
0
1992 / 1592 / 488
Регистрация: 31.05.2009
Сообщений: 2,980
02.05.2013, 20:25 5
http://cplusplus.com/reference/algorithm/unique/
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
#include <algorithm>
#include <iostream>
 
int main()
{
    std::string str;
    std::cout << "input string: ";
    std::getline(std::cin, str);
 
    auto last = std::unique(str.begin(), str.end(),
                    [](char a, char b) { return a == ' ' && b == ' '; });
    str.erase(last, str.end());
 
    std::cout << str << '\n';
}
2
Грамотный. Безпорно.
16618 / 9657 / 1863
Регистрация: 27.09.2012
Сообщений: 23,955
Записей в блоге: 2
03.05.2013, 02:46 6
Как вариант:
C++
1
2
3
4
5
6
7
8
void Trim_SD(char * dest, char * source){
    for(char *p1=source,*p2=dest; (*p2=*p1);++p1,++p2){
        if(*p1!=' ') continue;
        for(;*p1==' ';++p1);
            p2+=(p2==dest || !(*p1))?0:1;
            *p2=*p1;
    }
}
так же удаляет лишние пробелы в начале и в конце строки.
dest и source могут указывать на одну и ту же память
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2013, 02:46

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

Реализовать функцию, которая принимает строку в качестве аргумента и удаляет из этой строки все пробелы
Всем привет! Нужна Ваша помощь. Есть задачка - написать функцию, которая принимает строку в...

Написать функцию, которая удаляет из строки s1 все символы, встречающиеся в строке s2
Народ, очень требуется помощь : :wall: № 1. Написать и протестировать функцию DELETE(s1, s2),...

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

Написать программу, которая удаляет из введенной с клавиатуры строки конечные пробелы
Пожалуйста помогите... Написать программу, которая удаляет из введенной с клавиатуры строки...

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

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


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

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

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