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

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

Войти
Регистрация
Восстановить пароль
 
Goga-turbo
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
#1

Определить, сколько в строке символов "*", ":", ";" - C++

17.09.2012, 22:59. Просмотров 1168. Ответов 10
Метки нет (Все метки)

Учусь языку,не могу разобраться со строками,а точнее с их описанием! Помогите пожалуйста на примере задачи:Дана строка.Определить сколько в ней символов "*", ":", ";".
Я тут набросал что нашел в инете,но ясное дело ничего не работает.
Программирую в Microsoft Visual Studio 2008/10.Если несложно,то киньте еще какие нибудь задачи со строками посложнее,заранее благодарен!
Мой выродок:

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
#include <iostream>
#include<conio.h>
using namespace std;
#include<string.h>
#define TEXT L##p
#define char wchar_t
#define TEXT(p)p
#define TCHAR char 
 
TCHAR* masStr=1[str];
//TCHAR str[]=TEXT("privet");
 
 
 
bool Symb(TCHAR a)
{return a==TEXT('*')||a==TEXT(';')||a==TEXT(':');
}
 
 
int Kol(TCHAR* str)
{int k=0;
for(;str;str++)
{if (Symb(*str)) k++;}
return k;
}
        
void main(void)
{
    int kol=0;
//if(wParam == 34)
setlocale(LC_ALL,"");
cout<<"Введите символы ";
cout<<"Исходная строка: ";
         kol=Kol(str);
         cout<<endl<<"Кол-во символов:"<<kol;
         getch();
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 22:59     Определить, сколько в строке символов "*", ":", ";"
Посмотрите здесь:
C++ Сколько раз среди данных символов встречается символ "+" и символ "*"
C++ Выяснить, имеется ли пара соседствующих символов ",-" "-," (запятая, тире) в тексте
C++ Сколько существует способов расставить между цифр знаки "+" и "-"
Во введённой строке требуется поменять все буквы "а" на "i", и наоборот C++
Процедура, "рисующая" на экране горизонтальную линию из 80 символов "*" C++
C++ Каждую последовательность символов"АBC" заменить на"ALPHABET"
Подсчитать количество слов "KSM" и "SKS" в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
17.09.2012, 23:48     Определить, сколько в строке символов "*", ":", ";" #2
STL решение
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
#include <algorithm>
 
int main()
{
   std::string s (";:;;**1");
   std::cout << std::count_if (s.begin(), s.end(), [](char c) { return (c=='*' || c==';' || c==':'); });
   return 0;
}
http://liveworkspace.org/code/8c22b554840de5908188cac53c4e0849


Простое решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
int main()
{
   std::string s ("**11;;;:::");
   int res = 0;
   for (int i=0; i<s.length(); ++i)
     if (s[i] == '*' || s[i] == ';' || s[i] == ':')
      ++res;
   std::cout << res;
   return 0;         
}
http://liveworkspace.org/code/262cccbf5089f2311740623eff049ec1
Goga-turbo
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:22  [ТС]     Определить, сколько в строке символов "*", ":", ";" #3
Эммм... ну как бы я ее создал)))
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
18.09.2012, 00:23     Определить, сколько в строке символов "*", ":", ";" #4
Goga-turbo, оно ведь не работало? или вам описание к ним нужно?
Goga-turbo
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:27  [ТС]     Определить, сколько в строке символов "*", ":", ";" #5
Программа то? не,она не работала(
Dani
1300 / 637 / 56
Регистрация: 11.08.2011
Сообщений: 2,280
Записей в блоге: 2
Завершенные тесты: 1
18.09.2012, 00:31     Определить, сколько в строке символов "*", ":", ";" #6
Goga-turbo, вот, а я вам рабочие версии предложил.
Goga-turbo
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:58  [ТС]     Определить, сколько в строке символов "*", ":", ";" #7
Спасибо!!!
А если строку надо будет вводить с клавы?и выводить чтобы посмотреть в консоли,какой вид она примет?
Topotun
89 / 48 / 7
Регистрация: 16.09.2012
Сообщений: 207
18.09.2012, 01:36     Определить, сколько в строке символов "*", ":", ";" #8
В качестве результата на консоли будет число - количество символов: *, ;, :.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.09.2012, 03:42     Определить, сколько в строке символов "*", ":", ";" #9
С вводом с клавиатуры и удалением заданных символов.
Код
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 <string>
#include <Windows.h>
#include <cstdlib>
using namespace std;
 
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
 
   string s;
   
   cout << "Введите строку: ";
   getline(cin, s);
   
   system("cls");
   cout << "Строка до обработки:    " << s << endl;
   
   int res = 0;
   int i = 0;
   while (i < s.size())
   {
       if (s[i] == '*' || s[i] == ';' || s[i] == ':') 
       {
            ++res;
            s.erase(i, 1);
            continue;
        }
        i++;
    }
        
    cout << "\nСтрока после обработки: " << s << endl;  
   
    cout << "\nУдалённых символов: " << res << endl;
          
    system("pause");
    return 0;
}
Goga-turbo
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 20:10  [ТС]     Определить, сколько в строке символов "*", ":", ";" #10
Проверил,все работает,Спасибо!
Тока с языком муть какая то - в консоли все буквы(просьба ввести строку,результаты все) как на арабском языке! Не подскажите в чем может быть проблема? Что то написать забыли?,или дело не в этом?
P.S. Я про программу написанную выше неким alsav22!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2012, 04:48     Определить, сколько в строке символов "*", ":", ";"
Еще ссылки по теме:
Существуют ли в данной строке s две непересекающиеся подстроки "AB" и "BA" C++
Найти сколько раз в строке из 16 символов встречается слово "she" C++
Определить "Y" с точностью до члена ряда меньшего "e"(допустим: 0.001) C++
Подсчитать количество символов ".", "?", "!" C++
Замена в строке каждого второго символа "!" на "$" C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.09.2012, 04:48     Определить, сколько в строке символов "*", ":", ";" #11
Тема: "Русские буквы в консоли." На форуме много об этом пишут, поищите. У меня вот это работает:
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Попадалось, что при этом, в свойствах консоли, нужно выбрать шрифт: Lucida Console.
Если только для вывода, то можно это попробовать:
C++
1
setlocale(0, "RUS");
Yandex
Объявления
19.09.2012, 04:48     Определить, сколько в строке символов "*", ":", ";"
Ответ Создать тему
Опции темы

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