Похожие чаты

Hello, somebody can give me advice how to parse words

from file without punctuation chars?
i tryed with "%64[a-zA-Z]%*[^a-zA-Z]" but it unsuccessful

13 ответов

14 просмотров

#include <stdlib.h> #include <stdio.h> #include <inttypes.h> #include <ctype.h> #include <stdbool.h> typedef struct { size_t beginI, endI; } StrRegion; int main(void) { // Example data char const str[] = "Once upon a time in a land far far away there was a strange and vast forest"; // Storage int8_t nWords = 0; StrRegion regions[30]; // Find the words bool inWord = false; size_t i = 0; for (; str[i] != '\0'; i++) { if (inWord) { if (isgraph(str[i])) { continue; } inWord = false; regions[nWords - 1].endI = i; continue; } if (isgraph(str[i])) { if (nWords > sizeof(regions) / sizeof(regions[0])) { fprintf(stderr, "Reached region storage limit "); exit(EXIT_FAILURE); } inWord = true; regions[nWords++].beginI = i; } } if (inWord) { regions[nWords - 1].endI = i; } // Print them for (int8_t i = 0; i < nWords; i++) { StrRegion const r = regions[i]; size_t len = r.endI - r.beginI; printf( "%" PRIi8 ": From %zu to %zu (length %zu): ", i, r.beginI, r.endI, len); fwrite(str + r.beginI, sizeof(str[0]), len, stdout); puts(""); } return EXIT_SUCCESS; }

²- Автор вопроса
Chiyando
#include <stdlib.h> #include <stdio.h> #include <i...

im found somethinf easier: while (fscanf(file, " %64[a-zA-Z]", word) == 1) { fscanf(file, "%*[^a-zA-Z]"); printf("%s\n", word); }

²- Автор вопроса
²
@TRGWII whats wrong?

regex for something so simple

²- Автор вопроса
Thomas
regex for something so simple

it just work TM I dont think so its good solution, but in anycase its simpler than man above provide and parsing with bunch of funcs from string.h

Chiyando
How would you solve it?

well what is he really testing for? "64" followed by a character and / or "anything that isn't a character"?

Thomas
well what is he really testing for? "64" followed ...

Oh, I haven't used fscanf so I just assumed %64 has a special meaning. Didn't actually know he is searching for literal "64"

Chiyando
Oh, I haven't used fscanf so I just assumed %64 ha...

I don't know what it means either tbh, but it doesn't seem that complex anyway

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Friends, how can I find my Wazirx wallet address?
Silm Silm
31
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
11
My 7 year old daughter recognizes the Bitcoin symbol and knows it's currency. What are the top ,3-5 most basic important concepts to convey to a kid about BCH? I started with ...
Big Hair
24
How many Cashfusion server now?
Crypto life
22
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Кто знает локации, где можно машину красиво отфоткать?
Lalalashechki Lalala
23
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Карта сайта