После последней буквы каждого слова вставить точку - C (СИ)

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

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

Вот задание. После последней буквы каждого слова вставить точку. Лишние символы (с 81-ого) отбросить Мой код ниже, а от меня требуют сделать рабочие указатели, народ помогите плиз.
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
void main()
{
 char *s=new char [100];
 char *wrd=new char [100];
 int i,l,j,iii,m,kol=0;
 
 puts("Введите строку");
 gets(s);
 puts("Исходная строка:");
 puts(s);
 
 i=0;l=0;
 
 while (i<strlen(s))      // Пока не закончилась строка
  {
   l=strlen(s);
   // Пропускаем пробельные символы между словами
   while (s[i]==' '&&i<l)
    i++;
   iii=0;
   // Анализируем слово слово
   while (s[i]!=' '&&i<l)
    {
     wrd[iii]=s[i];
     i++;iii++;
    }
   wrd[iii]='\0';
 
   if (strlen(wrd)>0)
    {
     for(j=strlen(s);j>=i;j--) // Расширяем строку на 1 символ
      s[j+1]=s[j];
     s[j+1]='.';              // вставляем точку
     i++;
    }
  }
 puts("Полученная строка:");
 puts(s);
 getch();
}

Решение задачи: «После последней буквы каждого слова вставить точку»

textual
Листинг программы
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
void main()
{
  char *s=new char [100];
  char *wrd=new char [100];
  char *t;
  puts("vedite stroku");
  gets(s);
  puts("ishodnoi stroke:");
  puts(s);
  t=s;  //ustanovka ukazatelya na nachalo stroki
    t=s;
   while ((t=strchr(t,' '))!=NULL)
       {
       strcpy(wrd,t);
       *(t)='\0';
       strcat(s,".");
       strcat(t+1,wrd);
       t+=2;
          }
       int k=strlen(s);
       s[k]='.';
       s[k+1]='\0';
       if (strlen(s)>81)
       s[80]='\0';
       printf("novaya stroka:%s\n",s);
   getch();
   }

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

В этом коде задача состоит в том, чтобы добавить точку в конец каждого слова в строке, введенной пользователем. Вот список действий, которые выполняются в коде:

  1. Строка, введенная пользователем, сохраняется в массиве символов s.
  2. Программа выводит эту строку.
  3. Указатель t устанавливается на начало строки.
  4. Пока t не равен NULL (что означает, что он достиг конца строки), он указывает на следующий символ в строке. Этот символ должен быть пробелом.
  5. Когда t равен NULL, это означает, что он достиг конца строки. В этом случае строка wrd копируется в буфер, начиная с позиции t.
  6. Исходная строка s обновляется путем замены пробела на точку и конкатенации слова из буфера wrd.
  7. Указатель t обновляется, чтобы указывать на следующий символ в строке.
  8. Процесс повторяется до тех пор, пока не будет достигнут конец строки.
  9. Длина строки s вычисляется и обновляется.
  10. Если длина строки s больше 80 символов, последний символ заменяется на точку.
  11. Обновленная строка выводится на экран.
  12. Программа ожидает нажатия клавиши, прежде чем завершить свое выполнение.

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


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

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

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