2015-06-10 3 views
1

Я создаю простую программу чата в QBasic, которая будет отвечать на вопросы, основываясь на некоторых ключевых словах, присутствующих в пользовательском вводе. Поэтому мне нужен способ поиска суб string (т.е. конкретное слово) внутри строки. Итак, пожалуйста, помогите мне.Как найти подстроку в строке в QBasic

+2

вы должны разместить код у вас есть уже ... – Marged

+3

Посмотреть http://www.garybeene.com/qbasic/qb-tutor-strings.htm и искать инстр. –

+1

Эта ссылка описывает INSTR в QB64: http://www.qb64.net/wiki/index.php/INSTR – eoredson

ответ

4

Чтобы узнать, если строка содержит определенное (суб) строку, вы можете сделать это:

text$ = "nonsense !" 
IF INSTR(text$, "sense") >= 1 THEN 
    PRINT "This text makes sense !" 
END IF 

И нет, я не был в состоянии проверить это, как больше не QBasic на мой PC ;-) по ссылке с комментарием выше> = 1 нормально

+1

Я работаю, и даже нет необходимости использовать> = 1, пока это слово не будет повторяться более одного раза –

+1

@NilakshSingh это хорошие новости. Итак, теперь вы можете принять один из ответов ;-) – Marged

3

Я думаю, INSTR обычно используется следующим образом:

sent$ = "This is a sentence" 

PRINT INSTR(1, sent$, "is") 
PRINT INSTR(4, sent$, "is") 
PRINT INSTR(1, sent$, "word") 

первая команда PRINT будет печатать «3», так как первое место «есть» в предложении находится в позиции 3. («Это» в «Это»)

Вторая команда PRINT начинает поиск в позиции 4 («s» в «Это») и поэтому находит «is» в позиции 6. Таким образом, он напечатает «6».

Третья команда PRINT напечатает «0», поскольку в предложении нет слова «слово».

1

Подсчитывает вхождения подстроки в строке.

T$ = "text to be searched and to be displayed" 
S$ = "to" 
l = 1 
DO 
    x = INSTR(l, T$, S$) 
    IF x THEN 
     n = n + 1 
     l = x + LEN(S$) 
    ELSE 
     EXIT DO 
    END IF 
LOOP 
PRINT "text '"; S$; "' matches"; n; "times." 
+0

Подсчитывает вхождения строки в строке. – eoredson

+0

Это может быть полезно. Благодаря! –

Смежные вопросы