После последней буквы каждого слова вставить точку - 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(); }
Объяснение кода листинга программы
В этом коде задача состоит в том, чтобы добавить точку в конец каждого слова в строке, введенной пользователем. Вот список действий, которые выполняются в коде:
- Строка, введенная пользователем, сохраняется в массиве символов
s
. - Программа выводит эту строку.
- Указатель
t
устанавливается на начало строки. - Пока
t
не равенNULL
(что означает, что он достиг конца строки), он указывает на следующий символ в строке. Этот символ должен быть пробелом. - Когда
t
равенNULL
, это означает, что он достиг конца строки. В этом случае строкаwrd
копируется в буфер, начиная с позицииt
. - Исходная строка
s
обновляется путем замены пробела на точку и конкатенации слова из буфераwrd
. - Указатель
t
обновляется, чтобы указывать на следующий символ в строке. - Процесс повторяется до тех пор, пока не будет достигнут конец строки.
- Длина строки
s
вычисляется и обновляется. - Если длина строки
s
больше 80 символов, последний символ заменяется на точку. - Обновленная строка выводится на экран.
- Программа ожидает нажатия клавиши, прежде чем завершить свое выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д