Заменить символы в строке и вывести полученную строку - C (СИ)
Формулировка задачи:
2. Дана символьная строка. Заменить все символы '+' на символы '-' кроме второго и вывести полученную строку.
"Кроме второго", не получается ввести в код, помогите
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> int main() { char str[20]; int n=0,i,j; //puts("vvedite stroku\n"); gets(str); for(i = 0; i < strlen(str); i++) if(str[i]=='+') str[i]='-'; for(i = 0; i < strlen(str); i++) printf("%c",str[i]); return 0; }
Решение задачи: «Заменить символы в строке и вывести полученную строку»
textual
Листинг программы
#include <stdio.h> int main(void) { char str[255]="gfgfg+gfgf+ fggf+"; int n=0, i=0, j, k=0; //puts("vvedite stroku\n"); for(i = 0; str[i]; i++) { if(str[i]=='+') { ++k; if(k<2) { str[i]='-'; }else break; } } ++i; for(; str[i]; i++) { if(str[i]=='+') { str[i]='-'; } } printf("%s\n", str); return 0; }
Объяснение кода листинга программы
В этом коде заменяются все плюсы на минусы, если они не являются первым или вторым символом в строке. Вот список действий:
- Вводится строка
gfgfg+gfgf+ fggf+
. - Инициализируется переменная n (количество замен), i (индекс текущего символа) и k (счетчик числа плюсов).
- Цикл проходит по каждому символу строки.
- Если символ равен плюсу, увеличивается значение k.
- Если k меньше 2, заменяется текущий плюс на минус.
- Если k равно 2, заменяется только первый плюс на минус.
- Цикл проходит по каждому символу строки, начиная с индекса i, и заменяет все плюсы на минусы.
- Выводится итоговая строка
-gfgfg-gfgf- fggf-
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д