201

(42 відповідей, залишених у Інше)

Не сильно розуміюсь на закритих протоколах. Але шановні, блокування Трампа стало можливим через

П.2.10

те, що він закликав своїх громадян до захоплення влади. Він порушував закон.

Саме Фейсбук та Твіттер мають виконувати закони тієї країни, де розташовані а саме США.
Так само і ви Пане Koala, коли Ваша ідея запрацює, перш за все Ви маєте зробити все на законодавчому рівні в тому числі.

202

(42 відповідей, залишених у Інше)

koala написав:
pluszz написав:

Пане koala ідея дуже навіть хороша питання як контролювати провайдера якщо він буде знати все про всіх.

Так от це ж якраз і суть: не треба лишати всі дані одному провайдеру. Провайдер, по-перше, знає лише те, що банк зв'язався з магазином, але не суму і не назву товару; по-друге, можете лишати різні дані різним провайдерам, головне - правильно налаштовані дозволи. Хай провайдер "магазинних послуг" видає ID магазину, а провайдер поштових послуг - пошті. Тоді провайдер вищого рівня (банк чи інший) знатиме лише те, що провайдер А звертався до провайдера Б стосовно дозволів для пошти, але саму адресу дізнається лише пошта, а не провайдер А чи банк.

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

203

(42 відповідей, залишених у Інше)

van9 написав:

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

Вони не наші брати.
А той ЧЕБУРНЕТ хай собі вказують свої персональні дані. Ми ж вільні люди.

204

(42 відповідей, залишених у Інше)

van9 написав:

Привіт усім, я теж хочу бачити таким спілкування в мережі. Реєстрація на форумах та сайтах з паспортом (ID) та повна відповідальність за вчинки.
Ми думаємо паралельно, і ми не одні такі (думаю таких людей більше)
То створіть петицію, хто матиме електронний підпис, підпише.

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

205

(30 відповідей, залишених у C++)

Львівский сирник в мульти написав:
lucas-kane написав:

українською! не розумію вашої мови.

while(1) {
/* . . . */
}

Я так пробував, але вибиває помилку. І програма зупиняється .

Взагалі, то був жарт. Але якщо Ви вже так пробували... ))) (не маю що сказати)

206

(30 відповідей, залишених у C++)

Давайте українською! Не розумію вашої мови.

while(1) {
/* . . . */
}

207

(23 відповідей, залишених у C++)

Для одночасного виводу краще прибрати спільний буфер. Не передавати його параметром функції latinize а повертати конкретний результат. Якось так

208

(23 відповідей, залишених у C++)

bebyk написав:
lucas-kane написав:

А результат на виході спів падає з умовою задачі?

Так, коли по одній функції на printf, то й з копіюванням усе видає коректно. Тому й уточнюю.  :)

У всякому разі дякую за детальне пояснення, це мені не зайве.

А коли 2 разом в одному printf(саме це ви питаєте) не зважаючи на те, що результат дублюється. Вихідні дані хоч трохи подібні до умови?

209

(23 відповідей, залишених у C++)

bebyk написав:

Тож цікаво, як переробити, щоб можна було викликати 2 функції в одному printf й отримати різну видачу на різні аргументи?

В одному printf із одним буфером ніяк. Це не можливо... Ось відповідь.... Друге питання скільки цих буферів Вам знадобиться Не знаю..
У даному випадку викликати можна тільки окремо і перед кожним викликом чистити буфер.
Можете спробувати так.

bebyk написав:

Також, так і не зрозумів, навіщо це, коли я викликаю по функції в одному printf:

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

bebyk написав:

Все коректно працює з перезаписом. Щоб уникнути додаткових \0? Чи я щось випустив з уваги? Чи ви це написали, як перше, що потрібно для згаданої переробки коду?

А результат на виході спів падає з умовою задачі?

210

(23 відповідей, залишених у C++)

Щоб уникнути перезапису буферу потрібно не копіювати кожного разу слова до нього а додавати.

#include <stdio.h>
#include <string.h>

char* latinize(const char*, char*);

int main()
{
    char buf[50] = "";
    printf("%s\n", latinize("pig", buf));
    printf("%s\n", latinize("latin", buf));

    return 0;
}

char* latinize(const char* word, char* buf)
{
    //strcpy(buf, &word[1]);
    strcat(buf, &word[1]);
    strncat(buf, word, 1);
    strcat(buf, "ay ");

    return buf;
}

Ну а щоб вам уникнути Дублювання під час одночасного виклику функції latinize з одним буфером потрібно переробити код. Так не піде.

211

(23 відповідей, залишених у C++)

)) Так. По перше. Не зважаючи на роботу коду у головній функції в printf, Ви до буферу копіюєте  слово. Коли Ви викличете latinize один раз, то вона спрацює і видасть правильний результат.
А от у Вашому випадку, виклик двічі приводить до перезапису Буферу, тобто перший раз виклику

buf = "atinlay\0"

, а другий -

buf = "ig\0nlay\0"

. Поверх попереднього результату запише інший...
По друге,

printf("%s %s", latinize("pig", buf), latinize("latin", buf));

- Виведе результат на екран тільки у тому випадку, коли в середині неї завершать роботу виклики інших функцій, а саме latinize("pig", buf), latinize("latin", buf). А оскільки Буфер в якому збереглись результати роботи програми один, то і результат Вашої роботи буде дублюватись, крім того, ще й неправильно...

212

(23 відповідей, залишених у C++)

wander написав:
lucas-kane написав:
wander написав:

Ні. Це не так, array != pointer.

Ім'я масиву є вказівником на ділянку пам'яті, так само як і перший елемент масиву, а точніше його адреса...
Частково це і є вказівник, конкретніше його окремий випадок. Тобто коли вказівнику присвоюється певний блок пам'яті (Для цього випадку у СТЕКУ)

Це ви собі так вигадали і видаєте бажане за дійсне? Бо з дійсністю це має вкрай мало спільного.
До ознайомлення - тиць

Так згоден написав маячню... Мав на увазі зовсім інше. Але виразивши свою думу і за підтвердженням хотів відкрити Brian Kernighan, Dennis Ritchie випадково натиснув відправити (сонний був, а як відредагувати чи видалити щойно надіслане повідомлення не знаю). Просто хотів зауважити для початківця, що Масиви і Вказівники настільки взаємопов'язані, що їх навіть розглядають одночасно.
Вибачаюсь. Я не являють по професії програмістом, - це скоріше хобі.

213

(23 відповідей, залишених у C++)

wander написав:
bebyk написав:

а array це pointer

Ні. Це не так, array != pointer.

Ім'я масиву є вказівником на ділянку пам'яті, так само як і перший елемент масиву, а точніше його адреса...
Частково це і є вказівник, конкретніше його окремий випадок. Тобто коли вказівнику присвоюється певний блок пам'яті (Для цього випадку у СТЕКУ)

214

(23 відповідей, залишених у C++)

Ну Ви трохи намудрували з кодом. Але то таке... Буває
По перше ви працюєте із функціями бібліотеки string.h в них вже програмно закладено працювати із масивами дами а ви їм чомусь передаєте символьні значення. не зрозуміло. якщо ви копіюєте до буферу посимвольно то краще використовувати оператор присвоєння, тобто

strncat(buffer, &word[i], 1);

замінимо на

buf[i] = word[i]....

По друге, це не стосується до помилки,

    for (int i = 0; i < N; ++i)
        if (!i) /*...*/ else  /* ... */

- так ніколи не робіть

Ось тримайте:

char* latinize(char* word)
{
    static char latinized_word[50];
    int len = strlen(word);

    char buffer[50];
    char first = *word;
    int i;
    for (i = 0; i < (len - 1); i++)
        buffer[i] = word[i + 1];
    buffer[i] = first, buffer[i + 1] = '\0';

    strcat(buffer, "ay");

    strcpy(latinized_word, buffer);
    return latinized_word;
}

Має бути, щось типу такого... Передивіться прототипи функцій бібліотеки string
http://www.cplusplus.com/reference/cstring/

215

(5 відповідей, залишених у Python)

А що саме виправляти? Ви хоч його запускали?

216

(57 відповідей, залишених у C++)

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

Львівский сирник в мульти написав:

Чому б не написати свою функцію? Так буде цікавіше Вам і, можливо, навчитесь більше.

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

#include <stdio.h>
int main()
{
    char str[] = " pryvitaty z novym rokom i pobazhaty zdaty vsi roboty i otrymaty vysoki baly ";
    char sub[] = "aty";

    char *p = str, *pwd = str; // покажчики котрі ходитимуть у межах рядка утворюючи підрядок
    size_t i, word = 0;

    while (*p)
    {
        if (*p == ' ')
            pwd = p;

        // Ну а тут перевіряємо на ATY підрядок, якщо проходить всі умови ...
        if (*sub == *p)
        {
            for (i = 0; i < 3; ++i)
                if (sub[i] != *(p + i))
                    goto l1;
            if (*(p + i) == ' ' || *(p + i) == '\0')
            {

                // ... то виводимо на екран та інструментуємо лічильник

                printf("%.*s\n", ((p + i) - pwd), (*pwd == ' ' ? (pwd + 1) : pwd)), word++;
                if (*(p + i))
                    p = ((p + i) + 1), pwd = p;
            }
        }
    l1:
        p++;
    }

    printf("Words \"ATY\": %zu\n", word);
    return 0;
}

З Вашого дозволу використаю тільки PRINTF

На виході отримуємо

pryvitaty 
pobazhaty 
zdaty
otrymaty 
Words "ATY": 4

Ось тримайте початковий код. Щоб не вигадувати велосипед заново.
https://code.woboq.org/userspace/glibc/ … k_r.c.html
https://opensource.apple.com/source/Lib … .auto.html

217

(7 відповідей, залишених у Pascal/Delphi)

Зараз запалають палкі прихильники та запахне смаженим, але поясніть мені: “Чому розділ форуму носить назву “Pascal/Delphi”? Чому не “Pascal/Object Pascal”? Саме Object Pascal, конкретніше його діалект котрий був притаманний тоді ще компанії Borland – є основною мовою програмування для цієї IDE.
Зустрічав таких фанатів, якщо можна їх так назвати, краще напевне фанатиків, котрі стають навшпиньки коли їм кажеш, що мови програмування Delphi в природі не існує. І починається!!!

https://uk.wikipedia.org/wiki/Object_Pascal

Я не проти назви, не проти самої мови програмування (Це моя одна із перших мов котрі розпочинав вивчати). Не зрозумійте мене не правильно але краще речі називати своїми іменами.

218

(7 відповідей, залишених у C++)

Мінімальний мінімум)))

Ну для початку компілятор gcc/g++ http://gcc.gnu.org/, або clang https://clang.llvm.org/
Хоча перший може бути встановлений автоматично залежно від дистрибутиву Лінукс.

Для налагодження DBG https://www.gnu.org/software/gdb/ та утиліту слідкування за пам’яттю valgrind https://www.valgrind.org/

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

Можеш Відвідати ці ресурси https://www3.ntu.edu.sg/home/ehchua/pro … _make.html
https://gcc.gnu.org/projects/beginner.html
https://clang.llvm.org/get_started.html

А так Google в допомогу там цього добра навалом

219

(9 відповідей, залишених у C++)

... А взагалі третім параметром strtol є посилання на місце у рядку де починається число.

Ось прототип long int strtol (const char* str, char** endptr, int base); у Вашому випадку endptr - це те місце.

Хотів поправитись. А взагалі третім параметром strtol є посилання на місце у рядку де ЗАКІНЧУЄТЬСЯ число.
І так наступний код

operation + 1 + (*(operation + 1) == ' ' ? 1 : 0)

видаляє пробіли, тільки вже після символу оператора та запам'ятовує символ оператора. Прошу пробачити ))) Надіюсь це роз'яснення Вас влаштує...

220

(9 відповідей, залишених у C++)

ні пробіли Ви пропускаєте в:

    if (*operation == ' ')
    {
        operation++;
    }

я ж скинув Вам посилання... А взагалі третім параметром strtol є посилання на місце у рядку де починається число.

Ось прототип long int strtol (const char* str, char** endptr, int base); у Вашому випадку endptr - це те місце.