С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
#1

Обработка строк - C++

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

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

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

Обработка строк - C++
//разделила предложение на слова, т.е. теперь каждое слово будет с новой строкой. //Как теперь начать обрабатывать каждое слово по...

Обработка строк - C++
Разработать алгоритм и программу для определения в тексте что самого длинного слова, в котором нет цифр. Нужна ваша помощь,...

обработка строк - C++
Помогите решить задачу, на завтра нада,а с методом выполнения не знаком, к сожалению. Разработать консольное приложение, выполняющее...

Обработка строк - C++
Помогите написать программу, которая проверяет содержатся ли в слове буквы, цифры?

Обработка строк - C++
Помогите пжласта! Скоро экзамен, вот надо допуск получить. 1. Дана строка символов. Удалить из строки все группы букв abcd. 2....

10
Ksan
27 / 27 / 0
Регистрация: 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 / 0
Регистрация: 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 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:46 #6
str.length() возвращает длину строки
str.erase(int pos, int len) удаляет len символов с позиции pos в строке. Тк преобразовывать надо "это" в "то", то достаточно удалить лишь букву "э"
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 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 / 0
Регистрация: 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 / 0
Регистрация: 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
Привет! Вот еще темы с ответами:

Обработка строк - C++
Удалить из строки все сдвоенные, строенные и т.д. символы

Обработка строк - C++
Нужно обработать строку по условию Вычислить количество вхождений в строку символа, эквивалентиного заданной пользователем цифре. ...

обработка строк - C++
Нужно вычислить количество слов в строке, количество разных слов в строке и вывести каждое четное слово. Слова в строке разделяются...

Обработка строк - C++
С клавиатуры ввести строку. Удалить все слова, которые содержат хотя бы одну латинскую букву; вывести на экран все слова, длина...


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

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

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