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

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

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

обработка строк C++
C++ обработка строк.
C++ обработка строк
Обработка строк C++
C++ Обработка строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ksan
26 / 26 / 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
26 / 26 / 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
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
12.03.2012, 12:46     Обработка строк #6
str.length() возвращает длину строки
str.erase(int pos, int len) удаляет len символов с позиции pos в строке. Тк преобразовывать надо "это" в "то", то достаточно удалить лишь букву "э"
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
26 / 26 / 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++
Обработка строк C++

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

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

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru