Дана строка символов до точки. Удалить из строки первые буквы каждого слова - C (СИ)
Формулировка задачи:
написал подобное
но увы тут строка представляется как массив. надо без.... Прошу помогите.
#include <stdio.h> #include <stdlib.h> #include<string.h> int main () { char a[50], s[50]; char b; int n=0,d=1,i,j=0; printf("vvod stroki do to4ki\n\n"); do { b=getchar(); a[n]=b; ++n; } while (b!= '.'); --n; for (i=0;i<n;++i) { if (d) { a[i]=0; d=0; continue; } if (a[i]==' ') { d=1; } if (a[i] != '0') { s[j]=a[i]; ++j; } } for (i=0;i<j;++i) printf("%c", s[i]); }
Решение задачи: «Дана строка символов до точки. Удалить из строки первые буквы каждого слова»
textual
Листинг программы
int len_i, len_o, i, j = 0; ... output[j++] = input[i];
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Объявляются три переменные типа int: len_i, len_o, i. Значение переменной len_i равно количеству символов в исходной строке. Значение переменной len_o будет равно количеству символов в итоговой строке. Переменная i используется как счётчик для прохода по исходной строке, а переменная j — для подсчёта количества символов в итоговой строке.
- Происходит цикл, в котором каждый символ исходной строки, начиная с первого, копируется в итоговую строку. При этом в итоговую строку не включаются символы, которые являются первой буквой слова. Цикл продолжается до тех пор, пока счётчик i не станет равным len_i.
- Значение переменной j используется как счётчик для прохода по символам итоговой строки. Если очередной символ итоговой строки является первой буквой слова, то он пропускается, в противном случае он копируется в итоговую строку. Цикл продолжается до тех пор, пока счётчик j не станет равным len_o.
- Результатом работы программы является итоговая строка, которая содержит все символы исходной строки, кроме первой буквы каждого слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д