В последовательности символов удалить все запятые до первой точки - C (СИ)
Формулировка задачи:
Задачка такая
Необходимо в последовательности символов удалить все запятые до первой точки, а далее все символы 4 и 8 заменить на знак +
последовательность вводится с клавиатуры
?
Этот пример удаляет пробелы и все после точки, но дальше меня не хватает!
зарание спасибо!
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
char s,z;
cout << "введите последовательность с точкой в конце: " << endl;
cin.unsetf(ios :: skipws);
for(z=s=' ';z!='.';s=z)
{
cin >> z;
if(z==' '&&s==' ');
cout << z;
cout << s;
}
getch();
}Решение задачи: «В последовательности символов удалить все запятые до первой точки»
textual
Листинг программы
#include <iostream.h>
#include <stdio.h>
void main()
{
int f, t;
char z;
cout << "Введите 2 предложения заканчивающиеся точкой," << endl;
cout << "содержащие запятые и цифры 4 и 8." << endl;
cin.unsetf(ios :: skipws);
f=0;
t=0;
while(t<2)
{
cin >> z;
if(z=='.')f=1,t++;
if(f==0)
{
if(z!=',') cout << z;
}
else
{
if((z=='4')||(z=='8')) cout << "+";
else cout << z;
}
}
cout << endl << "Конец программы. Нажмите любую клавишу.";
getchar();
}
Объяснение кода листинга программы
Код считывает два предложения, заканчивающиеся точкой, содержащие запятые и цифры 4 и 8.
- Переменные:
- f, t (счетчики)
- z (символ)
- Цикл while считывает первое предложение:
- Счетчик t увеличивается на единицу при каждой точке.
- Если введенный символ является точкой, то счетчик f устанавливается в единицу.
- Вторая часть цикла (если f == 0) выводит все символы кроме запятых:
- Если введенный символ не является запятой, он выводится.
- Вторая часть цикла (если f == 1) выводит символы '4' и '8' с плюсом перед ними:
- Если введенный символ является '4' или '8', перед ним выводится плюс.
- Вывод сообщения
Конец программы. Нажмите любую клавишу. - Программа ожидает нажатия клавиши для завершения.