Удаление симовола из строки с используя цикл for - C (СИ)
Формулировка задачи:
Здравствуйте. Нужно удалить символ g из строки используя цикл for. Написал такой код
Однако в результе получаю ту строку на выходе которую ввел. Что-то я не соображу где же тут ошибка
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main (){
clrscr();
int i,j;
char S[100];
puts("Vvedite stroky");
gets(S);
const char b='g';
for (i=0;i<strlen(S);i++)
{ if (S[i]==b) { for (j=i;j<strlen(S);j++) S[j]=S[j++];
i++;
}
}
puts(S);
getch();
}Решение задачи: «Удаление симовола из строки с используя цикл for»
textual
Листинг программы
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main (){
int i,j;
char S[100];
puts("Vvedite stroky");
gets(S);
const char b='g';
for (i=0;i<strlen(S);i++)
{ if (S[i]==b) { for (j=i;j<strlen(S);j++) S[j]=S[j+1];
i++;
}
}
puts(S);
getch();
}
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные типа int: i, j, и строка S.
- Пользователю предлагается ввести строку.
- Введенная строка сохраняется в массиве S.
- В цикле for перебираются все символы в строке S.
- Если текущий символ равен символу 'g', то в цикле for, начинающемся с этого места, все символы, начиная с текущего, сдвигаются на один символ вправо.
- После удаления символа 'g', длина строки уменьшается на 1.
- Выводится измененная строка.
- Программа завершается.