Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
1

Обработка строк

12.03.2012, 12:26. Просмотров 695. Ответов 10
Метки нет (Все метки)

помогите пожалуйста написать вот эти задачи:
1. Дана строка символов. Подсчитать сколько раз среди символов строки встречается символ "+" и сколько раз символ ".".
2. Преобразовать текст, заменяя каждое вхождение слова это на слово то.
3. Дан текст. Напечатать все слова, входящие в него в алфавитном порядке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 12:26
Ответы с готовыми решениями:

обработка строк
Нужно вычислить количество слов в строке, количество разных слов в строке и...

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

Обработка строк.
Дана строка и слово. Составить функцию, которая образует массив строк,...

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

Обработка строк
Если можно с подробным объяснением,что бы разобраться. ЗАДАНИЕ: Дана...

10
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:29 2
Формат данных? char* или string?
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 12:30  [ТС] 3
string
0
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:42 4
Первое

C++
1
2
3
4
5
6
7
8
9
string str;
int pl=0, tch=0;
for(int i=0; i<str.length(); ++i)
{
  if(str[i] == '+') ++pl;
  if(str[i] == '.') ++tch;
}
cout << pl << " +\n"
cout << tch << " .";
Добавлено через 3 минуты
Второе

C++
1
2
3
4
5
6
7
8
9
10
11
string str;
for(int i=0; i<str.length(); ++i)
{
  if(i+2 < str.length()
  {
    if(str[i] == 'э' && str[i+1] == 'т' && str[i+2] == 'о')
    {
      str.erase(i, 1);
    }
  }
}
Добавлено через 4 минуты
Третье

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int N=1024, ind=0;
string str, mass[N];
for(int i=0; i<str.length(); ++i)
{
  if(str[i] == ' ')
  {
    ++ind;
    continue;
  }
  if(ind >= N) 
  {
    cout << "error: to small massive\n";
    break;
  }
  mass[ind] += str[i];
}
 
for(int i=0; i<=ind; ++i)
{
  // отсортируй их и выведи
}
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 12:42  [ТС] 5
Объясните пожалуйста, что это значит "length и erase" и зачем это надо?
0
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:46 6
str.length() возвращает длину строки
str.erase(int pos, int len) удаляет len символов с позиции pos в строке. Тк преобразовывать надо "это" в "то", то достаточно удалить лишь букву "э"
0
ForEveR
В астрале
Эксперт С++
7996 / 4755 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
12.03.2012, 12:51 7
1)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
#include <algorithm>
#include <iostream>
 
int main()
{
   const std::string value = "and . what ++. it..+..+";
   size_t plus_count = 0, point_count = 0;
   std::for_each(value.begin(), value.end(), [&plus_count, &point_count](const char val)
   {
      plus_count += val == '+';
      point_count += val == '.';
   });
   std::cout << plus_count << " " << point_count << std::endl;
}
http://liveworkspace.org/code/42b825b634a2b3f52cb262c17a67e716

2.

C++
1
2
3
4
5
6
7
8
9
10
#include <string>
#include <algorithm>
#include <iostream>
#include <boost/algorithm/string.hpp>
 
int main()
{
   const std::string value = "это есть не это";
   std::cout << boost::replace_all_copy(value, "это", "то") << std::endl;
}
http://liveworkspace.org/code/2a37348d6947a8d8979d5c63573aebd9

3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string>
#include <algorithm>
#include <iostream>
#include <boost/algorithm/string.hpp>
 
int main()
{
   const std::string value = "это, есть, не то. но другое не есть это!";
   std::vector<std::string> words;
   boost::split(words, value, boost::is_any_of(" ,.!"), boost::token_compress_on);
   std::sort(words.begin(), words.end());
   std::copy(words.begin(), words.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}
http://liveworkspace.org/code/7b92e3fe91476b1357ea15041423bad6
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 14:08  [ТС] 8
Цитата Сообщение от Ksan Посмотреть сообщение
Формат данных? char* или string?
А если написать в char*? что изменится?
0
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 14:12 9
zttx, по-другому определяется длина строки, по-другому преобразовывается
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 14:22  [ТС] 10
А как?
0
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 14:29 11
strlen(char *) - длина строки
а преобразование - нужно создавать второй массив, в который и заносить измененный вариант
0
12.03.2012, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 14:29

Обработка строк
Не реализована возможность ввода и сохранения нескольких строк. Функция...

Обработка строк
Ребята помогите написать программу, вырезающую из строки все цифры.

обработка строк
1. Розработать алгоритм и программу для определения процента повторения...


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

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

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