1

Тема: Функції (Сі)

Чи можна замінити наступні завдання готовими функціями
1) Знайти якийсь символ у масиві символів та зкопіювати усі симовли, що йдуть до нього, в окремий масив
2) Вирізати із масиву символів певну послідовність чи замінити її на іншу (не змінюючи вручну розмір масиву)

2

Re: Функції (Сі)

memcpy

3

Re: Функції (Сі)

Нарешті, знайшов повний список
https://uk.wikipedia.org/wiki/String.h

4

Re: Функції (Сі)

void * memcpy (void * destination, const void * source, size_t num);
Не зрозуміло як зкопіювати тільки частину "source"

5

Re: Функції (Сі)

1) strchr знаходить символ, memcpy копіює.
2) Ні. Розміри масивів у C фіксовані, хочете переробити масив - руками створюєте новий.

Подякували: ВВ, 0xDADA11C72

6

Re: Функції (Сі)

ВВ написав:

void * memcpy (void * destination, const void * source, size_t num);
Не зрозуміло як зкопіювати тільки частину "source"

За допомогою третього параметра size_t num. А взагалі, я бачу що ви нуб, тому краще читайте підручник з початку. Мені з усіх підручників з мови С подобається Стівен Пратта

Подякували: ВВ1

7

Re: Функції (Сі)

Але як за допомогою одного числа можна визначити 2  теж числові параметри (початок та кінець)?

8

Re: Функції (Сі)

size_t num визначає довжину, того що треба зкопіювати. destination - куди копіювати, а source - звідкіля

9

Re: Функції (Сі)

Так, треба розписувати. Маєте масив символів (скажімо, A) та масив, куди треба копіювати (хай буде B). Вам треба:
- за допомогою strchr знайти положення певного символу в A (хай положення буде X). Це викликає проблеми?
- за допомогою memcpy скопіювати символи від початку A до X у B. Тут є проблеми?
Про яке "одне число" ви кажете, і чому вам треба визначати початок, який і так заданий?

Подякували: ВВ1

10

Re: Функції (Сі)

Я розпишу по іншому. Але умовно. Не лайте будь-ласка, якщо щось не так.
Маємо

#define VOLUME 1
#define TIMEOUT 2
#define FREQ 3
#define RETRY 4
char parlist[4][20]={"timeout", "frequency", "volume", "retry"};
int def[4]={TIMEOUT, FREQ, VOLUME, RETRY};
char* buff="frequency: 10\ntimeout2: 2\nvolume: 100\nretry: 1";

та

struct sett
{
   int pname;
   int pval;
};
sett *settings;

Потрібно
1) Порахувати кількість рядків (нехай буде X) і це буде кількість елементів settings:

settings=new sett[X];

2) Взяти тимчасовий масив line і проаналізувати в циклі кожну лінію, дані до ":" записати у тимчасовий масив tpar, а дані після двокрапки у int tval. У іншому циклі, що входить до даного, перевірити, чи не співпадає tpar із якимось елементом parlist. Якщо співпадає з елементом Y,

sett[couter].pname=def[Y];
sett[counter].pval=atoi(tval);

У масиві line має бути лише одна лінія, як і у масиві tpar лише символи до ":"

11 Востаннє редагувалося koala (28.07.2021 16:44:39)

Re: Функції (Сі)

Ну от, як завжди...
У вас є задача. Щоб її розв'язати, ви вирішуєте, що вам треба зробити якусь підзадачу. Як її розв'язувати - ви не знаєте і питаєте на форумі.
А потім з'ясовується, що ця підзадача ніяк вам не допомагає, бо ваша задача інша. І ви знову ідете на форум питати про наступну підзадачу, і т.д.
Не грайтеся в цю гру. Є повна задача? Опишіть її, хоча б приблизно. Ви конфігураційний файл розбираєте, чи що? Дуже схоже, що вам тут sscanf потрібен.

Пара зауважень до коду:
- #define вам треба замінити на enum, це більш природний спосіб задавати такі константи
- послідовність різна - це так і задумано?
- в C немає оператора new, тільки malloc/calloc.

Ну і "лінія" - це щось мальоване, а у вас рядки.

Подякували: ВВ1

12

Re: Функції (Сі)

Я дуже вдячний за таку лаконічну відповідь. Але одночасно я хотів би навчитися розбирати будь-які файли. Для того, щоб зекономити час, я не хочу перелічувати все, де я хотів би це використати. Зокрема HTML.

Прихований текст

Я можу сказати лише що C++ з <vertor> та <string> мені не підійшли взагалі, бо конвертація типів у WinAPI і назад чомусь викликали головний біль (ниючий) та не бажання з ним працювати. Я може у далекі часи в майбутньому почну використовувати, але коли з'являться чіпи, що поліпшують інтелект та пам'ять.

13

Re: Функції (Сі)

Читайте підручник з початку, бо те, що ви зараз робите може викликати не лише головний біль у вас. а й блювотну реакцію в реплейсян, які вам намагаються допомогти. То не працюте з С++, а замість цього уживайте С.

Подякували: ВВ, koala2

14

Re: Функції (Сі)

Давайте так домовимося. Ви мені скажете, який підручник я маю читати спочатку. Я його почитаю і результат напишу сюди. Але тут є перешкоди
1) Як я собі це уявляю. Як мені казали багато людей. Потрібно починати з підручника за 5 клас із математики, потім 11 класа, булеву логіку, вчити про регістри процесора, старші та молодші слова і лише після вивчення асамблера починати Сі. Цей шлях для мене іще складніший, ніж <string>
2) Навіть якщо є такий підручник, який вміщає в себе весь той курс, з 5 по 11 класи, булевую логіку та усе інше, то він коштує багато грошей і
-або його не знайти на піратських сайтах
-або складно

Якщо чесно, я пролистував (не читав) не один підручник асемблера, якраз він і включає в себе більшу частину цього курсу, але і він мені не зрозумілий знову ж таки через те що я чогось не знаю та не можу тримати в голові фізіологічно. Якби я задавав на форумах питання про те, що мені не зрозуміло, то на вивчення пішло б 1000 років, якщо не більше.

Виходить, єдиним варіантом залишається побудова функцій (та забуття як вони працюють) і побудова на їх базі нових функцій і таким чином складання програм.

15

Re: Функції (Сі)

Чого ви тільки 5 клас згадуєте? А перший - ні? Булеву логіку для цього вашого конкретного завдання читати окремо від підручника з програмування не треба. Будуть складніші завдання - можливо, доведеться це прочитати. Щодо математики, то 5 класу має вистачити для подібних завдань (але це не значить що для всіх).

вчити про регістри процесора, старші та молодші слова і лише після вивчення асамблера починати Сі.

Не треба цього робити.

2) Навіть якщо є такий підручник, який вміщає в себе весь той курс, з 5 по 11 класи, булевую логіку та усе інше, то він коштує багато грошей і

Ви шукати пробували? Українські шкільні підручники безкоштовно лежать в інтернеті, але мені більше подобається Khan Academy.

Якщо чесно, я пролистував (не читав) не один підручник асемблера, якраз він і включає в себе більшу частину цього курсу, але і він мені не зрозумілий знову ж таки через те що я чогось не знаю та не можу тримати в голові фізіологічно.

Асемблер для вивчення сів не треба знати, це лише ваше бажання таке.

та не можу тримати в голові фізіологічно.

Що вам каже з цього приводу психіатр на невропатолог(ваш діагноз)? Ви зверталися до них? Якщо ні, то звеніться.

Ви мені скажете, який підручник я маю читати спочатку.

Шукайте Стівена Пратту, в нього є підручники по С++ та С. Так от, почніть з С, без асемблера та плюсів.

Я його почитаю і результат напишу сюди.

Домовились, якщо вам буде щось незрозуміло - питайте тут, тільки читайте підручник з початку - сторінку за сторінкою і виконуйте всі вправи, які автор вимагає від вас.

Подякували: koala, ВВ2

16

Re: Функції (Сі)

Добре, спробую.

Щодо психіатра то мені сказали спершу нормалізувати сон та режим дня перед обстеженням, щоб зробити його більш якісним. Сон не нормалізував, а таблетки не приймаю бо там страшненькі побічні ефекти у інструкції. Виписували біфрен та гліцин. Останнє пробував так стаю веселим як алкоголік та одночасно тягне на сон, так страшно - сам не свій.

Я пробував пару ночей повіністю спати, але це не повернуло пам'ять та увагу до тих значень, що були у школі. Тож я вирішив, що як і інші подібні люди котрі хто не спав вночі, хто пив горілку. Мені треба буде з цим жити. Це типовий синдром у людей що часто сидять за комп'ютером. Не вважаю це чимось особливим.

17 Востаннє редагувалося mamkin haker (28.07.2021 20:23:18)

Re: Функції (Сі)

Віталій Віталійович це ви :D?

18

Re: Функції (Сі)

Щодо психіатра то мені сказали спершу нормалізувати сон та режим дня перед обстеженням, щоб зробити його більш якісним.

Коли в мене була депресія, то я взагалі вночі ридав, а якби я той сон міг самостійно нормалізувати, то, мабуть, і психотерапевт мені б не знадобився. Тож, якщо можете нормалізувати свій сон та режим дня - нормалізуйте, а як не можете - все одно звертайтеся до психотерапевта.

Сон не нормалізував, а таблетки не приймаю бо там страшненькі побічні ефекти у інструкції. Виписували біфрен та гліцин. Останнє пробував так стаю веселим як алкоголік та одночасно тягне на сон, так страшно - сам не свій.

Не виписуйте собі таблетки самостійно - зверніться до фахівця. Не знаю нічого про біфрен, але гліцин хороша штука для відновлення мозоку.

Це типовий синдром у людей що часто сидять за комп'ютером. Не вважаю це чимось особливим.

Знаєте, тут сидять багато програмістів та жоден не жаліється на фізичні обмеження власного мозоку. Тож, у вас щось нетипове.

Я пробував пару ночей повіністю спати, але це не повернуло пам'ять та увагу до тих значень, що були у школі.

Ви про***али здоров'я, а тепер хочете за декілька діб його відновити? Так не буває - це тяжкий шлях.

19

Re: Функції (Сі)

0xDADA11C7 написав:

Знаєте, тут сидять багато програмістів та жоден не жаліється на фізичні обмеження власного мозку. Тож, у вас щось нетипове.

-Спосібність міркувати, подібна до спосібності грати на скрипці або роялі - вимагає щоденної вправи.

20 Востаннє редагувалося mamkin haker (28.07.2021 21:07:47)

Re: Функції (Сі)

ВВ написав:

Я пробував пару ночей повіністю спати, але це не повернуло пам'ять та увагу до тих значень, що були у школі.

субєктивна думка диванного експерта

Мозок людини зазвичай розвиваєтся і зберігає метапластичність до 25 років, а якщо грузити свій мозок новою інформацією та забувати стару, то метапластичність зберігаєтся аж до 40 (щоб провірити свою метапластичність, спробуйте відмовитись від якоїсь привички щоб доріжка по якій іде нейронний сигнал змінилась)
Ви як я розумію загубили можливість підтримувати свій мозок в тонусі, тому повернути мозок до попередньої активності буде коштувати вам титаничних зусиль.

Як говорять дієтологи, замість простої таблетки (яку можна купити тільки по рецепту від дієтолога яка не буде давати жирам засвоюватись) дуже  рекламують ЗОЖ та "здорове харчування", замість вітамінок їсти фрукти які дорогі + гублять % корисних ричовини з роками(силку загубив, знайти неможу). Одиниці людей готові ідти цим шляхом, тому що він потребує титанічних зусиль.

автор повідомлення має >= 0 iq написав:

Рекомендація від диванного експерта:
1) Визначіть в які години доби вам спится найкраще та скільки часу займає сон (зазвичай це число кратне 3 години та може бути розкидане протягом дня типу 3 години ввечері 20:00 - 23:00 та 3 години в ночі 4:00 - 7:00). - допоможe нормалізувати сон
2) Почніть відмовлятись від надмірного вживання інформації (по типу всяких челенджів на ютюбі та інсталітерів). - поверне трішки метапластичності
3) Виїзджайте по частіше на природу та відпочивайте від комплюктера. - активує систему мозку яка відповідає за побудову особистості

Все написани вище є хворими думками автора.
Перепровіряйте всю інформацію.
Не лінуйтесь це зробити, адже автор може ввести вас в оману