Помогите с функциями

  • Автор темы Автор темы Garoh
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
G

Garoh

При разработке программы на компиляторе C++ Builder 6.0 мне понадобилась функция такого типа:
function_name(AnsiString s1, AnsiString s2),
где: function_name - естесственно, имя функции; s1 - некоторая исходная строка, s2 - строка или символ, которые необходимо найти на всем протяжении строки s1 и возвратить порядковый номер ее начала. Хотелось бы знать, есть ли такая библиотечная функция вообще, а если есть, то какую библиотеку необходимо подключить для ее вызова. Тип строк необязательно должен быть AnsiString, можно и char, т.к. они легко "конвертируются" друг в друга. В хелпе рылся 3 часа, ничего похожего не нашел. Тему создал именно в этом разделе, потому как это скорее относится к синтаксису языка, а не к объектно-ориентированным свойствам языка и компилятора.
З.Ы: есть такая функция в Basik'е - InStr(s1, s2), она либо возвращает порядковый номер начала строки s2 в строке s1 целочисленного типа, либо возвращает 0, если ничего похожего в s1 не нашла.
Прошу помочь, т.к. на С++ программирую совсем недавно, нужен совет
 
Каждая строка типа AnsiString может использоваться как массив символов, так же, как и в твоём родном QBasic, т.е. если AnsiString slovo="qwerty", то slovo[2]="w", a slovo[5]="t" и т.д. Далее... Ты можешь свободно определять длину слова поставив после переменной точку и написав Lenght(). Чтобы не было разницы в регистре, т.е. "А" или "а" можно использовать AnsiUpperCase().

К примеру, этот код найдёт символ "G" в строке "QWERTYUIOPASDFGHJKL" и вернёт его позицию:

Код:
AnsiString t = "g";
AnsiString fnnn = "QWERTYUIOPASDFGHJKL";
for(int ttt=1;ttt<=fnnn.Length();ttt++)
{
if(AnsiUpperCase(fnnn[ttt])==AnsiUpperCase(t))
{
Edit1->Text="Первое вхождение символа "+t+" в строке "+fnnn+ " встречается на позиции "+IntToStr(ttt);
}
}
успехов :)
 
Ээ, а что strstr в билдере недоступна?
 
Можно и через strstr(), но мы же не ищем лёгких путей ;) На самом деле - человек новенький в C++, а после QBasic ему будет легко разобраться с этим кодом. ;)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab