аналог IndexOf для массива char

Unikolai
Offline
Зарегистрирован: 21.09.2016

есть ли что-то подобное?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А что подобное? Подробнее не можете объяснить? 

sizeof отлично работает для любых массивов, хоть char[], хоть String[]. 

В чём проблема?

ptr
Offline
Зарегистрирован: 28.05.2016

ЕвгенийП пишет:

sizeof отлично работает для любых массивов, хоть char[], хоть String[]. 

Я его боюсь применять к массивам. А вдруг завтра это будет уже не массив, а указатель, когда перенесу этот код в функцию?

Нет, только дефайны или явное хранение в переменной )

 

Unikolai
Offline
Зарегистрирован: 21.09.2016

Если я не ошибаюсь, то sizeof выдает общую длину масива, мне же нужно получить позицию элемента

ptr
Offline
Зарегистрирован: 28.05.2016

Unikolai пишет:
Если я не ошибаюсь, то sizeof выдает общую длину масива, мне же нужно получить позицию элемента

А она в C фиксирована и не меняется. Куда положили, там и лежит. Массив - это не список.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Unikolai пишет:
Если я не ошибаюсь, то sizeof выдает общую длину масива, мне же нужно получить позицию элемента

Что такое позиция элемента? Нужно найти элемент в массиве, что-ли? А причём тут вообще sizeof?

Давайте Вы не будете пудрить мозги, а нормально и подробно объясните что именно Вам нужно.

Unikolai
Offline
Зарегистрирован: 21.09.2016

Помойму пудрите мозги здесь вы, и про сайзоф написали вы, если не ясно, что за функция indexof, существующая по сути во ,всяком случае, во всех известных языках программирования, то мне очень жаль, узнаете, думаю поймёте мой вопрос

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Виноват. Написано indexof, а я прочитал sizeof почему-то. Переклинило. Виноват, извините.

Нужная Вам функция называется strchr.

UPD: сейчас додумал, а что Вам нужно искать? Если одиночный сивол, то strchr, а если подстроку, то strstr

Unikolai
Offline
Зарегистрирован: 21.09.2016

со всеми бывает, спасибо, почему в порте он мне вот это выдает? 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А lotr-то чему равно, тут же не видно. Если тому, что в комментарии написано (там ноль или буква О?), то если совпадат, должно выдавать с этого нуля и до конца строки. Если не совпадает, то ring должно указывать на нулевой адрес памяти - это надо проверять.

const char *source = "Masha ela kashu";
char *p = strchr(source, 'k');
Serial.println(p ? p : "Ni hrena ne nashel");
p = strchr(source, '@');
Serial.println(p ? p : "Ni hrena ne nashel");
 

 

Unikolai
Offline
Зарегистрирован: 21.09.2016

массив такой, как закомметированный, и там и там буква О, вроде как

но суть в том,что все связаное с буквами(про русские буквы я вообще молчу) выводится какими-то кракозябрами...

хотелось бы и русские буквы выводить, то возможно?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, мой пример-то работает?

Если нет, то куда Вы его выводите?

Про русские буквы. Возможно, конечно, но это не имеет никакого отношения к типу char. Они другого типа. И функции поиска нужны другие (Вы видели в писаниях функций, что я давал, ремарку что они только для байтовых символом и т.п.) вот это как раз на эту тему.

Про русские букву, поищите на форуме парни выкладывали кучу всяких библиотек для них.

Unikolai
Offline
Зарегистрирован: 21.09.2016

вчера не было возможности за ИДЕ сесть, но в итоге я пришел к выводу, что буду преобразовыввать находимый символ в String и искать его соответственно в String массиве, так проще, во всяком случае с алийскими буквами у меня все получилось, если останетсявремя, буду работать напрямую с char? но пока так, надеюсь со String-ом и русскими буквами проблем е возикнет, хотя помойму лябуда уже была какая-то...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Unikolai пишет:

 надеюсь со String-ом и русскими буквами проблем е возикнет, 

Если у Вас большой запас по памяти, то не должно возникнуть, а вот если нет - String это главный в округе убийца памяти.

Unikolai
Offline
Зарегистрирован: 21.09.2016

да, это да, поэтому ориетируюсь на char, основная информация будет представлеа именно этим типом, а преобразовывать раз в цикл оду переменую char в String а мой взляд е страшно, хотя хотелось бы обойтись без String