stackquestions
stackquestions

Reputation: 25

setting variables equal to 'gets' in Ruby

I want to write a program that asks for two strings from the user and searches for one within the other, but I'm having some trouble making it work. The following returns "not" even when the given character is present within the string. Does anyone know what I'm doing wrong?

puts 'Enter the string that you would like to search'
content = gets
puts 'What character would you like to find?'
query = gets
if content.include? query
  puts "here"
else
  puts "not"
end

Upvotes: 0

Views: 44

Answers (1)

spickermann
spickermann

Reputation: 106802

gets returns the string from the user including the newline character '\n' at the end. If the user enters "Hello world" and "Hello", then the strings really are:

"Hello World\n"
"Hello\n"

That makes it obvious, why your code does not find a match.

Use chomp to remove that newline characters from the end of the string.

puts 'Enter the string that you would like to search'
content = gets.chomp

puts 'What character would you like to find?'
query = gets.chomp

if content.include?(query)
  puts "here"
else
  puts "not"
end

Upvotes: 1

Related Questions