Решена вторая часть работы

Этот коммит содержится в:
2024-12-23 10:43:14 +03:00
родитель 55409af4b2
Коммит 7f4b849e2c

35
lab04/lab04-C.cpp Обычный файл
Просмотреть файл

@@ -0,0 +1,35 @@
#include <cstdio> // Äëÿ fgets()
#include <cstring> // Äëÿ strspn() è strcspn()
#include <iostream>
using namespace std;
int main() {
const size_t MAX_SIZE = 256; // Ìàêñèìàëüíûé ðàçìåð ñòðîêè
char text[MAX_SIZE]; // Ìàññèâ äëÿ ââîäà ñòðîêè
const char* separators = " \r\n,.!?:;()-"; // Ðàçäåëèòåëè ñëîâ
// Ââîä ñòðîêè ñ êîíñîëè
cout << "Enter a string: ";
fgets(text, MAX_SIZE, stdin);
const char* start = text; // Óêàçàòåëü íà íà÷àëî ñòðîêè
// Öèêë äëÿ îáðàáîòêè ñòðîêè
while (true) {
const size_t separator_count = strspn(start, separators); // Êîë-âî ðàçäåëèòåëåé â íà÷àëå
start += separator_count; // Ïðîïóñê ðàçäåëèòåëåé
if (start[0] == '\0') { // Åñëè äîñòèãíóò êîíåö ñòðîêè, çàâåðøèòü
break;
}
const size_t word_length = strcspn(start, separators); // Äëèíà ñëåäóþùåãî ñëîâà
cout.write(start, word_length); // Ïå÷àòü ñëîâà
cout << '\n'; // Ïåðåâîä ñòðîêè
start += word_length; // Ïåðåìåñòèòü óêàçàòåëü íà ñëåäóþùèé áëîê
}
return 0;
}