Строка: Определить, сколько раз в строке встречается первая буква? - C (СИ)
Формулировка задачи:
Здравствуйте.
Помогите решить такую задачку.
Ввести символьную строку. Определить сколько раз в строке встречается первая буква.
Заранее благодарен.
P.S. вот как решить задачу если дан символ или буква, то все получается, а вот застрял, если например дана строка 12аве54 и определить сколько раз встречается первая буква. вот как в строке найти первую букву.
Решение задачи: «Строка: Определить, сколько раз в строке встречается первая буква?»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int first_letter_count(char *S)
{
int n=strlen(S);
int i,c=1;
for (i=1; i<n; i++) if (S[0]==S[i]) c++;
return c;
}
int main(int argc, char *argv[])
{
char *Z="1dadc1we1";
printf("%d\n",first_letter_count(Z));
system("PAUSE");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со строками и входными-выходными данными
- Определение функции
first_letter_count, которая принимает указатель на строку и возвращает количество вхождений первой буквы в строку - Внутри функции
first_letter_countинициализируется переменнаяnдля хранения длины строки - Инициализируются две переменные
iиcдля использования в цикле - Цикл
forпроходит по всем символам строки, начиная со второго, и проверяет, равен ли текущий символ первой букве строки - Если текущий символ равен первой букве, то переменная
cувеличивается на единицу - По завершении цикла, функция возвращает значение переменной
c - В функции
mainинициализируется строкаZдля тестирования функцииfirst_letter_count - Вызывается функция
first_letter_countс передачей строкиZв качестве аргумента - Выводится результат работы функции
first_letter_count - Вызывается функция
system(PAUSE), чтобы приостановить выполнение программы до нажатия клавиши - Возвращается значение 0, чтобы указать, что программа успешно завершилась