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

Количество пар рядом стоящих одинаковых символов строки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
asso
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
10.12.2010, 13:32     Количество пар рядом стоящих одинаковых символов строки #1
Задание на 7 лабораторную работу

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

1) объявляя строки как массивы символов

2) использовать шаблон string

Задачи.

1. Вводится строка. Подсчитать количество пробелов в строке.

2. Вводится строка. Проверить, что она состоит только из цифр и если да, то трактуя ее как число, прибавить к этому числу единицу.

3. Вводятся 2 строки. Перевернуть обе строки, склеить и вывести.

4. Вводится строка. Сколько в ней пар рядом стоящих одинаковых символов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 13:32     Количество пар рядом стоящих одинаковых символов строки
Посмотрите здесь:

C++ Поиск одинаковых рядом стоящих элементов
C++ Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов
C++ В массиве каждую группу рядом стоящих одинаковых элементов заменить одним и тем же значением
C++ Заполнить матрицу заданного размера числами 1,2,3,4 так, чтобы по горизонтали, вертикали и диагонали не было одинаковых рядом стоящих чисел.
C++ обработка строки. Рядом с каждым символом написать какое-либо количество таких же символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
10.12.2010, 13:36     Количество пар рядом стоящих одинаковых символов строки #2
1.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string Str;
    std::getline(std::cin, Str);
    std::cout<<"Numb of spaces: "<< std::count(Str.begin(), Str.end(), ' ') <<'\n';
    return 0;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.12.2010, 13:38     Количество пар рядом стоящих одинаковых символов строки #3
asso, Подсчитать количество пробелов в строке
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
10.12.2010, 13:40     Количество пар рядом стоящих одинаковых символов строки #4
Вчера писал подобное:
СТРОКИ.
asso
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
10.12.2010, 13:41  [ТС]     Количество пар рядом стоящих одинаковых символов строки #5
спасибо =))
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
10.12.2010, 13:49     Количество пар рядом стоящих одинаковых символов строки #6
2.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
#include <sstream>
 
int main()
{
    std::string Str;
    std::cin>>Str;
    int integer=0;
    for(size_t i=0; i<Str.size(); ++i)
        if(!(isdigit(Str[i])))
        {
            std::cout<<"Not only digits\n";
            return 1;
        }
    std::istringstream ist(Str);
    ist>>integer;
    integer+=1;
    std::cout<<integer<<'\n';
    return 0;
}
Добавлено через 2 минуты
3.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string Str;
    std::string Tmp;
    std::getline(std::cin, Str);
    std::getline(std::cin, Tmp);
    std::reverse(Str.begin(), Str.end());
    std::reverse(Tmp.begin(), Tmp.end());
    std::cout<<Str + " " + Tmp <<'\n';
    return 0;
}
Добавлено через 3 минуты
4.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
    std::string Str;
    std::cout<<"Enter string\n";
    std::getline(std::cin, Str);
    int cnt=0;
    for(std::string::const_iterator it=Str.begin();
        it!=Str.end()-1;
        ++it)
    {
        if(*it == *(it+1))
            ++cnt;
    }
    std::cout<<cnt<<'\n';
    return 0;
}
asso
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 4
10.12.2010, 14:19  [ТС]     Количество пар рядом стоящих одинаковых символов строки #7
спасибо =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 15:21     Количество пар рядом стоящих одинаковых символов строки
Еще ссылки по теме:

Дана последовательность символов, в начале которой имеется некоторое количество одинаковых символов. Определить это количество C++
C++ Найти количество пар одинаковых рядом стоящих элементов массива
Найти 3 и более одинаковых рядом стоящих элементов одномерного массива в строках и столбцах C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
10.12.2010, 15:21     Количество пар рядом стоящих одинаковых символов строки #8
Цитата Сообщение от asso Посмотреть сообщение
1) объявляя строки как массивы символов
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
   std::cout << "Input string: ";
   const size_t n = 20;
   char s[n];
   std::cin.getline(s, n);
 
   char* pch = s;
   int count = 0;
   while(*pch) if(*pch++ == ' ') ++count;
 
   std::cout << "Result: " << count << std::endl;
   return 0;
}
Добавлено через 5 минут
2.
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
#include <iostream>
#include <cstdlib>
#include <cctype>
 
int main()
{
   std::cout << "Input string: ";
   const size_t n = 20;
   char s[n];
   std::cin.getline(s, n);   
   
   char* pch = s;
   while(*pch) 
   {
      if(!isdigit(*pch++)) 
      {
     std::cout << "Result: "  << s << std::endl;
     return 0;
      } 
   }                   
      
   sprintf(s, "%d", atoi(s) + 1);         
   std::cout << "Result: "  << s << std::endl;
   return 0;
}
Добавлено через 5 минут
3.
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
#include <iostream>
#include <cstring>
 
void swap(char* a, char* b)
{
   char t = *a;
   *a = *b;
   *b = t;
}
 
void strrev(char* s)
{
   char* first = s;
   char* last = &s[strlen(s)-1];   
   while(first < last) swap(first++, last--);           
}
 
int main()
{
   const size_t n = 20;
 
   std::cout << "Input string1: ";
   char s1[n];
   std::cin.getline(s1, n);
 
   std::cout << "Input string2: ";
   char s2[n];
   std::cin.getline(s2, n);
 
   strrev(s1);
   strrev(s2);
   
   char r[n*2] = {'\0'};
   strcat(r, s1);
   strcat(r, s2);
   
   std::cout << "Result: " << r << std::endl;        
   return 0;
}
Добавлено через 3 минуты
4.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
   std::cout << "Input string: ";
   const size_t n = 20;
   char s[n];
   std::cin.getline(s, n);
   int count = 0;   
   
   for(char* pch = s+1; *pch; ++pch)    
      if(*pch == *(pch-1)) ++count;
         
   std::cout << "Result: " << count << std::endl;        
   
   return 0;
}
Yandex
Объявления
10.12.2010, 15:21     Количество пар рядом стоящих одинаковых символов строки
Ответ Создать тему
Опции темы

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