
Сергей
07.05.2016
12:32:43
Ну strpbrk тебе возвращает указатель на символ в строке
Разыменовываешь и получаешь символ
типа того

Alex Фэils?︙
07.05.2016
12:40:17

Google

Сергей
07.05.2016
12:43:24
ну это ж учебный пример

Alex Фэils?︙
07.05.2016
12:43:38
Ага

Сергей
07.05.2016
12:43:42
Похер, что неоч и небезопасно

Alex Фэils?︙
07.05.2016
12:44:32
Нее
Вот на это никогда нн должно быть похер
Даже в учебных примерах

Andrey
07.05.2016
14:05:19

Alex Фэils?︙
07.05.2016
14:06:40
/// тут безопаснее
const size_t N = 100;
char str1[N] = "bla lablabka10224289044", str2[N] = {0}; //делаем одинакового размера, чтоб не вылезти за пределы массива
size_t i1 = 0; // индекс записи
char *ptr = str1;
char *ptr_end = str1 + 100;
while(ptr < ptr_end && *ptr) { // пока не ройдем по всей строке, мли пока не кончатся символы
ptr = strpbrk(ptr, "0123456789"); // ищем цифры
if (!ptr) {
break;
}
str2[i1++] = *ptr; // пишем цифру (символ цифры!)
ptr++;
}

KrivdaTheTriewe
07.05.2016
14:57:12
Ребята, с доступом к IOS с PC никто не работал?

Andrey
07.05.2016
14:58:16

KrivdaTheTriewe
07.05.2016
15:00:11
Доступом к файловой системе

Alex Фэils?︙
07.05.2016
15:00:25
есть syncios

Google

Alex Фэils?︙
07.05.2016
15:00:36
она чето из тунца юзает
и можно в ифон писать инфу

KrivdaTheTriewe
07.05.2016
15:01:20
мне библиотеку бы)

Anton
07.05.2016
15:01:40
goto - зло?

Andrey
07.05.2016
15:01:51
Проблема в том, что люди не умеют его использовать.

Anton
07.05.2016
15:02:12
Но злом оно является в руках ребенка?

Andrey
07.05.2016
15:02:21

KrivdaTheTriewe
07.05.2016
15:02:39
использую goto регулярно
на работе

Andrey
07.05.2016
15:03:00
Кроме как выхода из вложенных циклов редко когда нужен.

KrivdaTheTriewe
07.05.2016
15:03:13
нужен для обработки ошибок
регулярно и часто

Andrey
07.05.2016
15:04:07

Alex Фэils?︙
07.05.2016
15:04:15
очень просто
ща покажу

Vitaly
07.05.2016
15:04:22

KrivdaTheTriewe
07.05.2016
15:04:36

Andrey
07.05.2016
15:04:41

Anton
07.05.2016
15:05:01
Тратить ресурсы лишние, ЗАТО БЕЗ ГОТО!!

Google

Andrey
07.05.2016
15:05:05
Ага, goto - зло, поэтому будем jmp использовать)

KrivdaTheTriewe
07.05.2016
15:05:31
http://lxr.free-electrons.com/source/mm/msync.c#L40

Andrey
07.05.2016
15:06:19
Блин, if без скобок...

Alex Фэils?︙
07.05.2016
15:06:35
void some_fn() {
void *h1, *h2, *h3;
void* h1 = init_huita1();
if(!h1)
return -1;
h2 = init_huita2();
if(!h2) goto clean_h1;
h3 = init_huita3();
if(!h3) goto clean_h2;
/* еще сотни тыщ такой хуиты */
clean_h2:
clean_huita(h2);
clean_h1:
clean_huidta(h1);
}

Andrey
07.05.2016
15:07:50

Vitaly
07.05.2016
15:07:59

Anton
07.05.2016
15:08:07

Andrey
07.05.2016
15:08:14

Alex Фэils?︙
07.05.2016
15:08:26
Я так и делаю

Alex Фэils?︙
07.05.2016
15:08:54
Если в функции только один раз встречаются вложенyые wиклы

Vitaly
07.05.2016
15:09:11
Дурачок?
Код с кучей готу очень сложно поддерживать.

Andrey
07.05.2016
15:09:28

Alex Фэils?︙
07.05.2016
15:09:29
ну, goto - это опасная вещь
ей нельзя злоупотреблять

Vitaly
07.05.2016
15:09:40

Alex Фэils?︙
07.05.2016
15:09:45
так же, как и другой хуйней

Andrey
07.05.2016
15:09:57

Google

Vitaly
07.05.2016
15:10:12
Код с готу не пройдёт code review в моей организации вообще, а автор такого говнокода получит рельсой по рукам.

Andrey
07.05.2016
15:10:27

Vitaly
07.05.2016
15:10:32

Andrey
07.05.2016
15:10:35
Удобно, чо.

Alex Фэils?︙
07.05.2016
15:10:37
с языка снял

Anton
07.05.2016
15:10:44

Andrey
07.05.2016
15:11:01

Admin
ERROR: S client not available

Alex Фэils?︙
07.05.2016
15:11:14

Anton
07.05.2016
15:11:59
А когда юзаешь гото, разве цикл не продолжает существовать?

Alex Фэils?︙
07.05.2016
15:12:34
ты прыгаешь в другой участок кода
если копнуть глубже, то у нас есть команды, которые в цикле крутятся

Andrey
07.05.2016
15:13:27

Alex Фэils?︙
07.05.2016
15:13:34
а ты выпрыгиваешь из этой петли

Anton
07.05.2016
15:14:08
но ведь одну петлю мы распутаем, а вторая существует, в то время как с гото два существуют

Andrey
07.05.2016
15:14:29

Anton
07.05.2016
15:14:53
еще бы уметь на плюсах кодить :D

Andrey
07.05.2016
15:15:28
Ты не можешь написать цикл?

Anton
07.05.2016
15:15:37
for(int i=0;i<100;i++) {
for(int j=0;j<100;j++) {
if(i==95 && j==42)
goto outer;
}
}
outer:
return 0;
0
for(int i=0;i<100;i++) {
for(int j=0;j<100;j++) {
if(i==95 && j==42)
// do something
break;
}
}

Google

Anton
07.05.2016
15:15:39
как-то так

arisu
07.05.2016
15:16:02
чет хуйня
используйте отдельный метод
с возвратом
из него

Anton
07.05.2016
15:17:01
где "do something" может быть и он. Суть в том, что мы при условии n==m вызовем код и заверим цикл
вот меня чет это идея заинтересовала

KrivdaTheTriewe
07.05.2016
15:17:40
сидит тут такой
схх чате и говорит, что готу плохо, в схх нет ничего безопасного

Anton
07.05.2016
15:18:32
но с гото должно быть быстрее, ведь он сразу перейдет к выполнению другого блока кода, а тут трата на остановку поезда

Vitaly
07.05.2016
15:18:33

Alex Фэils?︙
07.05.2016
15:18:41

KrivdaTheTriewe
07.05.2016
15:18:48
тебе же показали, где используется
и это необходимо

Alex Фэils?︙
07.05.2016
15:18:58
а вот то, где ты ща исполняешь код - может спокойно скакать

KrivdaTheTriewe
07.05.2016
15:19:06

Alex Фэils?︙
07.05.2016
15:19:10
если без goto, то мы будем скакать в этих двух петлях

KrivdaTheTriewe
07.05.2016
15:19:18
это овероптимизация которая губит всё

Alex Фэils?︙
07.05.2016
15:19:19
если с гото, то мы перешагиваем их

Vitaly
07.05.2016
15:19:34
и это необходимо
Это называется, что уровень кодера настолько низкий, что его ни в одну нормальную контору не возьмут. Так-то. А ты продолжай утешать себя.