Заменить каждую пару символов '**' на символ ' ' - C (СИ)
Формулировка задачи:
Доброго вечера! Не получается в задаче замена (подсчет C и D работает), поправьте пожалуйста, если кому не трудно. Вот условие:
Подсчитать количество букв 'C' и 'D' отдельно и заменить каждую пару символов '**' на символ ' '.
#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
int i,j,kol,kol1;
char s[100];
puts("Vvedite stroku:");
gets(s);
puts("Ishodnaya stroka:");
puts(s);
kol=0;
for(i=0;i<strlen(s);i++)
if((s[i]=='C'))
kol++;
kol1=0;
for(i=0;i<strlen(s);i++)
if((s[i]=='D'))
kol1++;
for(i=0;i<strlen(s)-1;i++)
if(s[i]=='*'&&s[i+1]=='*')
{
for(j=strlen(s);j>i;j--)
s[j+1]=s[j];
s[i+1]=' ';
i+=1;
}
printf("V stroke kolichestvo simvolov C=%d\n",kol);
printf("V stroke kolichestvo simvolov D=%d\n",kol1);
puts("Polu4ennaya stroka:");
puts(s);
getch();
}Решение задачи: «Заменить каждую пару символов '**' на символ ' '»
textual
Листинг программы
while(*st=strstr(s,"**"))
Объяснение кода листинга программы
- В начале кода инициализируется переменная
sтипом данныхchar*. - Далее в цикле while происходит поиск следующего символа '**' в строке
s. Функция strstr() возвращает указатель на первый символ найденной подстроки, или NULL, если подстрока не найдена. - Если символ '**' найден, то указатель на него сохраняется в переменной
st. - Затем происходит замена пары символов '**' на пробел. Для этого используется оператор
=для присваивания значения переменнойstсимволу ' '. - После выполнения всех операций в цикле, значение переменной
sбудет изменено и будет содержать исходную строку с заменой каждой пары символов '**' на пробел.