Распечатать каждую строку, заменив каждое слово, начинающееся с заданной буквы на заданное слово - C (СИ)

  1. знаю что есть такая же программа но очень хочу получить свое решение "Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать каждую строку, заменив каждое слово, начинающееся с заданной буквы на заданное слово." вот кодC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <stdio.h> #include <string.h> int substr(char *, char *, int, int); /*** главная функция ***/ int main(void) {   char s1[100],s2[100],slovo[50],bykva[1]; /* источник и результат */   int n, l, r,i; /* позиция, длина, результат */      printf("Vvedite stroky>");      /* ввод строки-источника */      gets(s1);      printf("Vvedite slovo>");      /* ввод слова для замены */      gets(slovo);          printf("Vvedite bykvy >");      /* ввод буквы */         gets(bykva);      for (i=0; i<strlen(s1); i++) {        if ((s1[i]==' ')&&(s1[i+1]==bykva[0])&&(s1[i+1]!='\0')) {            strncpy(s2,s1,i);            strcat(s2,slovo);                  }        }    puts(s2);   getch(); }


textual

Код:

strcat( starget, "\0" );


Похожие ответы
  1. нужно отсортировать каждую строку двумерной матрицы по возростанию. если можно с объяснением.Добавлено через 54 минуты примерно имею следующий код:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include   int main(void) {         int a[2][4];     int i, j, z,k,y;     printf(" vvedite massiv: \n");     for (i = 0; i < 2; i++)     for (k = 0; k < 4; k++)         scanf("a[%d][%d]", &a[i][k]);     for (i = 0; i < 1; i++)     {         z = a[i];         for (j = i - 1; j >= 0; j--)             if (z < a[j]) {                 a[j + 1] = a[j];                 a[j] = z;             }     }      for (i = 1; i < 2; i++)         {         y = a[i];         for (j = i - 1; j >= 0; j--)             if (y < a[j]) {                 a[j + 1] = a[j];                 a[j] = y;             }     }     printf("\n otsortirovannyi massiv: \n", a[i]);     for (i = 0; i < 2; i++)     for (k = 0; k < 4; k++)         printf("%d%d\n", a[i][j]);

  1. Словом назовём всякую последовательность букв латинского алфавита длинны не более 20. Предложение - всякую последовательность не более 30 слов, разделенных одним или несколькими пробелами, оканчивающуюся символом "." "!" "?". Написать программу, читающую заданное предложение, контролирующую его правильность и выполняющую функция, которая: Распечатывает каждое слово предложения, меняя его первую букву на прописную, если необходимо. Вот мой вариант кода:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #define _CRT_SECURE_NO_WARNINGS #include char up(void) {     int k = 0;     int i = 0;     char str[20];     while ((str[i] != '.') || (str[i] != '!') || (str[i] != '?') || (k > 30))     {         char str[20];         while (str[i] != ' ')         {             gets(str);         }         strupr(str[i]);         printf("%s", str);         k += 1;     } } void main() {     int i, k;     char str[20];     printf("Input ur string: ");     up();     }Программа позволяет ввести строку, однако, не обрабатывает её... Объясните, пожалуйста, в чём у меня ошибка?

  1. Помогите, каким образом это можно сделать? Возвести во введенном натуральном числе каждую цифру в степень, соответствующую ее позиции в числе

  1. Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии — количество этих элементов (длина серии может быть равна 1). Преобразовать массив, увеличив каждую его серию на один элемент.

  1. Помогите реализовать Задачу:С клавиатуры вводится многострочный текст. Распечатать самое длинное слово, в котором все буквы разные. Выручайте)

  1. В строке каждую группу рядом стоящих символов "+" заменить одним таким символом.

  1. Задача:в текстовом файле каждую вторую строку разбить на слова.Результат вывести в другой файл. С помощью strtok уже сделал,решил попробовать с помощью fscanf,но не могу сообразить как остановить ее в конце строки,ибо она продолжает считывать весь файл до конца,по словам.Что прописать в условии while в строке 12?C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include   int main() {     int n = 1;     char s[80];     FILE *fin, *fout;     fin = fopen("Input.txt", "r");     fout = fopen("Output.txt", "w");     while(!feof(fin)){         if(n % 2 == 0){             while(?){                 fscanf(fin, "%s", s);                 fprintf(fout, "%s\n", s);             }             n++;         }         else             fgets(s, 80, fin);             fprintf(fout, "%s", s);         n++;     }     fclose(fin);     fclose(fout);     return 0; }

  1. Здравствуйте! Помогите в решении следующей задачи, пожаалуйста Дано целое число L (> 1) и целочисленный массив размера N. Заменить каждую серию массива, длина которой меньше L, на один элемент с нулевым значением. Серия — группа подряд идущих одинаковых элементов. Длина серии может быть равна 1.

  1. Помогите решить задачу. Вот код который написал я он работает немного не точно, доработайте плиииз ну или можете написать свой я разберусь, заранее СПАСИБОC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include #include #include #include /**     Дан целочисленный массив размера N, содержащий по крайней мере одну серию, длина которой больше 1.  Преобразовать массив, уменьшив каждую его серию на один элемент. Серия — группа подряд идущих одинаковых элементов.  Длина серии — количество этих элементов (может быть равна 1).  **/   int main() {     srand(time(NULL));     SetConsoleCP(1251);     SetConsoleOutputCP(1251);     int n,i;     printf("Введите размер массива N = ");     scanf("%d",&n);     int arr[n];     printf("Стартовый массив:\n");     for (i=0;i

  1. Пожалуйста подскажите в какую часть программы добавить декремент или инкремент, чтобы получить такой результат: A B C D E F B C D E F G C D E F G H D E F G H I E F G H I J F G H I J KC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include   int main() {     char i, j;     for(i=1; i<=6; i++)     {         for(j='A'; j<='F'; j++)         {             printf("%2c", j);         }         printf("\n");     }     return 0; }