Определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’ - C (СИ)
Формулировка задачи:
Помогите решить задачку. вроде проще некуда, а голова совсем не варит(
определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
char str[100];
char b(char);
int main()
{
clrscr();
puts("Vvedite posledovatelnost simvolov\n");
b(*str);
getch();
}
char b(char q)
{
int i=0,n=0;
do
{
q=getchar();
str[++i]=q;
}
while(q!='.');//признак конца последовательности символов
for (i=0;i<100;i++)
{
if (str[i]=='u');
дальше хз как
}
printf("Otvet= %d\n",n);//n-счетчик
}Решение задачи: «Определить, сколько символов ‘e’ предшествует первому вхождению символа ‘u’»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STOP 'u'
#define FIND 'e'
int main(void){
char buf[BUFSIZ], * pStop, * pFind;
int cnt;
while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
if ( ( pStop = strchr(buf, STOP) ) == NULL ){
printf("No symbol %c found!\n", STOP);
continue;
}
for ( cnt = 0, pFind = strchr(buf, FIND); pFind != NULL && pFind < pStop; ++cnt, pFind = strchr(pFind + 1, FIND) )
;
printf("%d symbols %c found before %c\n", cnt, FIND, STOP);
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h, stdlib.h, string.h
- Определение двух констант: STOP и FIND. Значение STOP - 'u', FIND - 'e'
- Объявление переменных:
- buf - массив символов, в котором будет искаться символ 'u'
- pStop - указатель на первый символ 'u' в массиве buf
- pFind - указатель на первый символ 'e' в массиве buf
- cnt - счетчик символов 'e', которые предшествуют символу 'u'
- Ввод строки с помощью функции scanf. Если строка введена некорректно или содержит только пробелы, программа выведет сообщение об ошибке и запросит новую строку.
- Проверка наличия символа 'u' в строке. Если символ не найден, программа выведет сообщение об ошибке и продолжит ждать ввода новой строки.
- Если символ 'u' найден, начинается поиск первого символа 'e'. Используется цикл for для поиска каждого символа 'e' до тех пор, пока не будет найден символ 'u'.
- В каждой итерации цикла увеличивается счетчик cnt, а указатель pFind перемещается к следующему символу 'e'.
- После нахождения всех символов 'e' программа выводит количество найденных символов и символ 'u'.
- В конце программы возвращается 0, что означает успешное выполнение.