Как поставить запятые перед определенными словами в строке? - C (СИ)

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

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

Дана строка символов. Поставить перед союзами "но" и "а" запятые (если они не в начале предложения)
Есть кое- какой код, но он не работает, увы. Хотя не удивительно, ведь я его писал)) Укажите на ошибки и подскажите как исправить, плиз.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include <string.h>

main()
 
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
     int len, DlinaWord1, DlinaWord2, DlinaWord3, DlinaWord4;
char s[500], word1[]="но",word2[]="а",word3[]=",но",word4[]=",а";
  // указатель на найденное слово
int p=0,start=0; // указатель на начало зоны поиска
puts ( "Введите предложение" );
gets ( s );
DlinaWord1 = strlen(word1);
DlinaWord2 = strlen(word2);
DlinaWord3 = strlen(word3);
DlinaWord4 = strlen(word4);

 start = s; // в первый раз ищем с начала строки
 while ( 1 ) {
 p = strstr (start, word1); // есть ли еще слова?
 if ( p == NULL ) break; // если нет, то выход
strncpy(s+start, word3, DlinaWord3);
 start = p + DlinaWord1; // сместили начало поиска
 };

 while ( 1 ) {
 p = strstr (start, word2); // есть ли еще слова?
 if ( p == NULL ) break; // если нет, то выход
strncpy(s+start, word4, DlinaWord4);
 start = p + DlinaWord2; // сместили начало поиска
 }
 
printf ( "Переделанное предложение %s",  s );
}

Решение задачи: «Как поставить запятые перед определенными словами в строке?»

textual
Листинг программы
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   char s[100];
   int  p, i=0, j=0, start=0, DlinaWord_bez_0, DlinaWord_s_0;
    puts ( "Введите предложение" );
    gets ( s );
 
    DlinaWord_bez_0 = strlen(s);
    printf("%d\n",DlinaWord_bez_0);
    DlinaWord_s_0 =DlinaWord_bez_0+1;
    p=DlinaWord_bez_0;
   
     while (p!=0 ) // что то типо такого цикла "сдвига"
     {
     s[p+1]=s[p];
     p--;
     }
 
printf("\n");
puts (s);
}

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


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

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

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