Заменить символы в строке и вывести полученную строку - 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-.