Замена слова в строке - C (СИ) (247796)

Узнай цену своей работы

Формулировка задачи:

Есть код:
#include
#include
#include
#include
#include
void main() {
setlocale(LC_ALL,"rus");
int x;
char *A, *A1, Astra[]="switch(Nom)){case 1 Poisk1(); break;}";
char *c=")", *y="case 1:", *k="case 1";
printf("Начальная строка -> %s",Astra);
printf("\n\n");
printf("Удаляем символ -> )");
printf("\n");
A=strstr(Astra,c);
memmove(A,A+1,strlen(A));// ???
printf("\n");
printf("Cтрока после удаления симвода -> %s\n", Astra);
printf("\n");
printf("Теперь заменяем сase 1 на case 1:\n");
Надо заменить case 1 на case1: Подскажите, как это сделать и если можно, то пример кода

Решение задачи: «Замена слова в строке»

textual
Листинг программы
char Temp[1024];
int i;
A = strstr(Astra, k);
i = A - Astra;
memcpy(Temp, Astra, i);
Temp[i] = 0;
strcat(Temp, y);
strcat(Temp, A + 6);

Объяснение кода листинга программы

  1. Объявлены две переменные: Temp типа char с размером массива 1024 байта и i типа int.
  2. Переменная A инициализируется функцией strstr, которая ищет первое вхождение подстроки k в строке Astra.
  3. Переменная i инициализируется как результат вычитания A из Astra.
  4. С помощью функции memcpy содержимое первых i байт из Astra копируется в Temp.
  5. В Temp добавляется нулевой символ, чтобы обозначить конец строки.
  6. С помощью функции strcat к Temp добавляется строка y.
  7. С помощью функции strcat к Temp добавляется подстрока A + 6.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы