Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
1

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

17.09.2012, 22:59. Показов 2058. Ответов 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();
        }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2012, 22:59
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+"
С++ Мы вводим вручную строку , (через cin &gt;&gt; )программа должна после каждого &quot;+&quot; поставить &quot;*&quot; ...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата"
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

10
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
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
1
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:22  [ТС] 3
Эммм... ну как бы я ее создал)))
0
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
18.09.2012, 00:23 4
Goga-turbo, оно ведь не работало? или вам описание к ним нужно?
0
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:27  [ТС] 5
Программа то? не,она не работала(
0
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
18.09.2012, 00:31 6
Goga-turbo, вот, а я вам рабочие версии предложил.
0
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 00:58  [ТС] 7
Спасибо!!!
А если строку надо будет вводить с клавы?и выводить чтобы посмотреть в консоли,какой вид она примет?
0
95 / 54 / 10
Регистрация: 16.09.2012
Сообщений: 207
18.09.2012, 01:36 8
В качестве результата на консоли будет число - количество символов: *, ;, :.
0
5480 / 4875 / 831
Регистрация: 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;
}
1
0 / 0 / 0
Регистрация: 17.09.2012
Сообщений: 5
18.09.2012, 20:10  [ТС] 10
Проверил,все работает,Спасибо!
Тока с языком муть какая то - в консоли все буквы(просьба ввести строку,результаты все) как на арабском языке! Не подскажите в чем может быть проблема? Что то написать забыли?,или дело не в этом?
P.S. Я про программу написанную выше неким alsav22!!!
0
5480 / 4875 / 831
Регистрация: 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");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2012, 04:48

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Дана строка символов. Определить, стоят ли подряд в этой строке символы "а" и "б"
Дана строка символов. Определить, стоят ли подряд в этой строке символы &quot;а&quot; и &quot;б&quot;

Подсчитать, сколько букв "Р", "к", "т" в данной строке
дана строка подсчитать сколько в ней букв Р, к, т. помогите=)

Программа считывает файл ".txt" и выводит сколько "слов" в нем дано ("слова" разделены пробелом)
Прошу помощи с кодом. Если честно немного не понимаю что пошло не так. #include &lt;iostream&gt;...


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

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

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