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

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

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

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

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

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

Обработка строк. - C++
Определить, сколько раз в строке встречается последовательность символов «ВЕС».

Обработка строк - C++
Помогите,плиз! Нужно обработать строку по условию: 1.Вычислить количество специальных символов(не букв и не цифр) 2.Заменить все...

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

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

Обработка строк - C++
С помощью текстового редактора «Блокнот» создать файл, содержащий текст, длина кото¬рого не превышает 400 символов (длина строки текста не...

Обработка строк - C++
Найдите первую и последнюю буквы К в тексте введенном с клавиатуры. И замените их «*» Помогите пожалуйста!!!

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:29     Обработка строк #2
Формат данных? char* или string?
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 12:30  [ТС]     Обработка строк #3
string
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)
{
  // отсортируй их и выведи
}
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 12:42  [ТС]     Обработка строк #5
Объясните пожалуйста, что это значит "length и erase" и зачем это надо?
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:46     Обработка строк #6
str.length() возвращает длину строки
str.erase(int pos, int len) удаляет len символов с позиции pos в строке. Тк преобразовывать надо "это" в "то", то достаточно удалить лишь букву "э"
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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/42b825...b262c17a67e716

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/2a3734...9d5c63573aebd9

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/7b92e3...ea15041423bad6
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 14:08  [ТС]     Обработка строк #8
Цитата Сообщение от Ksan Посмотреть сообщение
Формат данных? char* или string?
А если написать в char*? что изменится?
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 14:12     Обработка строк #9
zttx, по-другому определяется длина строки, по-другому преобразовывается
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
12.03.2012, 14:22  [ТС]     Обработка строк #10
А как?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2012, 14:29     Обработка строк
Еще ссылки по теме:

Обработка строк - C++
1. Составить программу для определения количества слов, введенных в тексте 2. Составить программу для определения самого длинного слова,...

обработка строк. - C++
нужно составить программу. вот задание: даны n предложений. найти в каждом последнее слово и напечатать их в строку через пробел. язык Си....

Обработка строк - C++
С клавиатуры вводятся две строки, содержащие некоторые слова, перечисленные через точку с запятой. Найти общие для этих строк слова и...

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


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

Или воспользуйтесь поиском по форуму:
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 14:29     Обработка строк #11
strlen(char *) - длина строки
а преобразование - нужно создавать второй массив, в который и заносить измененный вариант
Yandex
Объявления
12.03.2012, 14:29     Обработка строк
Ответ Создать тему
Опции темы

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