В строке определить количество символов между первым и вторым двоеточием ':' - C (СИ)
Формулировка задачи:
Затрудняюсь понять, как запихнуть в условие чтобы сначала проверял после первого двоеточия (считал символы), а потом на останавливался после второго двоеточия, объясните, пожалуйста, голова не варит (
#include <stdio.h>
#include <string.h>
void main ()
{
char s[40];
int i,j,count;
printf ("input string: ");
gets (s);
for (i=0; s[i]!='\0'; i++ )
{
if (i==':')
count++;
}Решение задачи: «В строке определить количество символов между первым и вторым двоеточием ':'»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
int main()
{
char s[40];
int i, j, count = 0;
int SymFound = FALSE;
printf("input string: ");
gets(s);
for (i = 0; s[i] != '\0'; i++)
{
if (SymFound && s[i] != ':')
count++;
if (s[i] == ':')
SymFound = !SymFound;
}
printf("%d\n", count);
system("pause");
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Включаются необходимые заголовочные файлы
- Определяются значения TRUE и FALSE
- Создается переменная count для хранения количества символов между первым и вторым двоеточием ':'
- Создается переменная SymFound для отслеживания текущего символа
- Пользователю предлагается ввести строку
- В цикле происходит проход по каждому символу строки
- Если текущий символ не равен следующему символу (не считая символ двоеточия), и SymFound установлен в FALSE, то увеличивается счетчик count
- Если текущий символ равен символу двоеточия, то SymFound меняется на противоположное значение
- После прохода по всем символам выводится значение count
- Вызывается функция pause для приостановки выполнения программы до нажатия клавиши
- Программа возвращает 0, что означает успешное завершение работы программы