Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/230: Рейтинг темы: голосов - 230, средняя оценка - 4.91
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36

Посчитать количество букв 'а' в строке.

26.04.2011, 19:45. Показов 44131. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, задание следующее:

Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв “а” в нем. Вывести фамилию в столбик. Решить задачу используя функции из библиотеки string.h
Язык С++

Вот начало сделал а как букву "a" найти и фамилию в столбик написать придумать не могу... Помогите, пожалуста...!
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
clrscr();
char r1 [] = "Петров Иван Петрович";
char *p;
cout<<r1<<"\n";
cout<<"Длинна строки r1="<<strlen(r1)<<"\n";
getch();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.04.2011, 19:45
Ответы с готовыми решениями:

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

Посчитать количество букв в строке
Помогите пожалуйста начинающиму.... Условие задачи: &quot;Необходимо ввести с клавиатуры строку и посчитать количество букв в введеной...

Посчитать количество букв 'а' в строке
Добрый день, задание следующее: Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и количество букв...

31
 Аватар для Sokolov
42 / 42 / 13
Регистрация: 04.01.2011
Сообщений: 125
26.04.2011, 20:18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<string>
using namespace std;
int main()
{setlocale(LC_ALL,"Russian");
char a[]="Петров Иван Петрович";
int i=0,k=0;
 
do{
    if(a[i]=='а')
        k++;
    i++;
}
while(a[i]!='\0');
cout<<"Кол-во букв а="<<k<<endl;
cout<<"Длинна строки r1="<<strlen(a)<<"\n";
i=0;
do
{cout<<a[i]<<endl;
i++;}
while(a[i]!=' ');
return 0;
}
1
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
26.04.2011, 20:44  [ТС]
Спасибо! Работает! А что значит a[i]!='\0' ? А как фамилию в столбец написать не знаеш?
0
19 / 19 / 2
Регистрация: 30.11.2010
Сообщений: 164
26.04.2011, 20:46
C++
1
a[i]!='\0'
последний(нулевой символ) в символьном массиве
0
 Аватар для Sokolov
42 / 42 / 13
Регистрация: 04.01.2011
Сообщений: 125
26.04.2011, 20:49
Цитата Сообщение от D1K Посмотреть сообщение
А как фамилию в столбец написать не знаеш?
я же сделал

Цитата Сообщение от Sokolov Посмотреть сообщение
C++
1
2
3
4
5
i=0;
do
{cout<<a[i]<<endl;
i++;}
while(a[i]!=' ');
1
1 / 1 / 1
Регистрация: 26.04.2011
Сообщений: 36
26.04.2011, 20:52  [ТС]
Ой... не заметил! спасибо еще раз
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 12:32
Добрый день. А можете подсказать почему здесь не работает подсчет

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int N,M,i,j,k=0,k2=0,d=0;
int main(){
char arr[101][101];
cin>>M>>N;
for(int i = 0;i<N;i++){
        cin>>arr[i];
            
        }
 
for (int j=0;i<N;i++){
   if (arr[0][j]=='A'){k++;}
 
cout<<k<<endl;
 return 0;
}
 
    
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.11.2019, 12:38
Arlekin_s, у Вас объявлен двумерный массив, а заполняете непонятно что. напишите условие задачи.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 12:47
Условие:
Кликните здесь для просмотра всего текста
Граница
В международной политике важным понятием является граница между государствами. Нечеткое понимание сторонами того, где проходит граница, может привести к международным конфликтам и даже войнам.

В этой задаче ситуация обстоит несколько проще, так как у двух рассматриваемых в задаче государств есть четкое понимание, какая территория принадлежит какому из них.

Территория, занимаемая этими двумя государствами, представляет собой прямоугольник размером h на w километров, разбитый на квадраты со стороной в один километр. Каждый из этих квадратов полностью принадлежит либо первому государству, либо второму.

Необходимо определить длину границы между двумя государствами. Сторона единичного квадрата считается принадлежащей границе, если по одну сторону от нее лежит квадрат, принадлежащий первому государству, а по другую - принадлежащий второму.

Формат входных данных
Первая строка содержит два целых числа: w и h (1 ≤ w, h ≤ 100) - размеры прямоугольника в километрах. Далее следуют h строк, описывающих территорию. Каждая из них содержит w символов. Если символ равен A, то соответствующий единичный квадрат принадлежит первому государству, а если он равен B, то второму. Гарантируется, что каждому государству принадлежит хотя бы один квадрат.

Формат результата
Выведите одно целое число - длину границы между государствами в километрах.

Примеры
Входные данные
C++
1
2
3
4
5
6
7
5 6
AAABB
ABBBB
AAABB
AAAAB
AAAAB
AABBB
Результат работы
C++
1
13



вот задача целиком

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
#include <iostream>
using namespace std;
int N,M,i,j,k=0,k2=0,d=0;
int main(){
char arr[101][101];
cin>>M>>N;
for(int i = 0;i<N;i++){
        cin>>arr[i];
            
        }
 
for (int j=0;i<N;i++){
   if (arr[0][j]=='A'){k++;}
    
}
 
for (int i=0;i<N-1;i++){
        for (int j=0;j<M;j++){
            if (arr[i+1][j]=='A'){k2++;}
        }
        d=d+abs(k-k2);
        k=k2;
        k2=0;
        
}
d=d+N;
cout<<d;
 return 0;
}
я считаю количество букв А в i-той строке и в i+1 строке... затем вычитаю их и модуль разности записываю в d. Которая и будет потом суммой всех границ.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.11.2019, 13:10
Arlekin_s, для начала заполняйте двумерный массив:
C++
1
2
3
    for (int i = 0; i < w; i++)
    for (int j = 0; j < h; j++)
        cin >> arr[i][j];
алгоритм Ваш не совсем понятен. для такого массива какой будет результат ?
BB
AB
BB
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,814
15.11.2019, 13:58
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main() {
 
    std::string str = "It's a simple string";
 
    std::cout << "Result: "
        << std::count(str.begin(), str.end(), 'a') << '\n';
 
    return 0;
 
}
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 14:25
Цитата Сообщение от Yetty
алгоритм Ваш не совсем понятен. для такого массива какой будет результат ?
BB
AB
BB
В задаче указано что должны быть оба государства.
т.е. для
ААВ
АВВ
ААВ
ответ будет 5. Одна буква это один метр квадратный.. если считать длину границы.. начиная с первой строки между буквами А и В вот отсюда А^В (как бы с вершин букв)
то пучится: вниз влево вниз вправо вниз
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.11.2019, 14:29
Arlekin_s, условие задачи я вижу, ответьте на вопрос:
Цитата Сообщение от Yetty Посмотреть сообщение
для такого массива какой будет результат ?
BB
AB
BB
т.е. какой результат по Вашему алгоритму (как работает Ваш алгоритм для такого массива, распишите пошагово)
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 14:30
Nishen
Цитата Сообщение от Nishen
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main() {
 
    std::string str = "It's a simple string";
 
    std::cout << "Result: "
        << std::count(str.begin(), str.end(), 'a') << '\n';
 
    return 0;
 
}

нам нужен двумерный массив
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,814
15.11.2019, 14:37
Цитата Сообщение от Arlekin_s Посмотреть сообщение
нам нужен двумерный массив
Зачем?

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main() {
 
    std::string name = "Tonishev Eugene";
 
    std::cout << "Length of the name is " << name.length() << '\n';
    std::cout << "The number of 'a' letter is "
        << std::count(name.begin(), name.end(), 'a') << '\n';
 
    auto end = std::find(name.begin(), name.end(), ' ');
    std::copy(name.begin(), end, std::ostream_iterator<char>(std::cout, "\n"));
 
    return 0;
 
}
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 14:45
Цитата Сообщение от Nishen
Зачем?
ну как зачем.. чтобы задачу решить )
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,814
15.11.2019, 14:49
Arlekin_s, я твою задачу решил без двумерных массивов.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 15:01
Цитата Сообщение от Yetty
т.е. какой результат по Вашему алгоритму (как работает Ваш алгоритм для такого массива, распишите пошагово)

если брать из условия что 1 буква это один квадратный километр границы, во здесь
АВ
АВ
граница равна 2 км^2, а тут
ААВ
АВВ

тут рана 3м. Надеюсь понятно.

как я считаю.. а сначала считаю количество букв А в 0-ой строке.. затем в цикле я считаю количество букв в i+1 строке.. и записываю разницу по модулю i-той строке и i+1 для того чтобы посчитать горизонтальную длину границы. И так пройдясь по всем строкам я смогу посчитать горизонтальную длину всех границ. и в конце я прибавлю в переменной (сумме всех горизонтальных границ ) количество строк в матрице.. что соответствует количество вертикальных границ.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
15.11.2019, 15:03
Arlekin_s, напишите именно для такого массива:
Цитата Сообщение от Yetty Посмотреть сообщение
BB
AB
BB
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 40
15.11.2019, 15:19
В условии написано
Гарантируется, что каждому государству принадлежит хотя бы один квадрат

но и по вашему случаю должно было бы вывести 5
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2019, 15:19
Помогаю со студенческими работами здесь

Посчитать количество цифр и букв в строке
срочно. прошу вашу помощь_)) во введенной строке символов, заканчивающихся $. посчитать общее количество цифр и букв S. на с++.

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

Посчитать с помощью функции количество букв и цифр в строке.
1. Составить процедуру, результатом работы которой является действительное значение, если символ, заданный при обращении к процедуре, - ...

Посчитать количество гласных букв, согласных букв, цифр и знаков препинания в строке
С клавиатуры введена строка на кирилице. Посчитать количество гласных букв, согласных букв, цифр и знаков препинания в строке. Если...

Посчитать в строке количество гласных букв
Посчитать в строке количество гласных букв #include &lt;stdio.h&gt; #include&lt;conio.h&gt; int main() { char s;


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru