2016-06-14 2 views
0

Мое задание - сделать ввод пользователя и изменить все «c» и «s» на «s» и «th».Измените ввод пользователей, но сохраните исходный вход отдельно

После этого он попросил меня сохранить исходный вход пользователя, чтобы он не изменился.

Я не могу понять это в Ruby.

print "What can we do for you?" 
    user_input = gets.chomp 
    user_input.downcase! 
if user_input.length == 0 
    puts "Well you will have to write something...!" 
elsif user_input.include?("s") || user_input.include?("c") 
    puts "We got ourselves some 's's and some 'c's" 
    user_input.gsub!(/s/, "th") 
    user_input.gsub!(/c/, "s") 
    puts "The changed version: '#{user_input}!'" 
else 
    print "Nope, no 's' or 'c' found" 
end 
+0

[Нравится?] (Https://repl.it/C1lw) – potashin

+0

Это домашнее задание? Если это так, прочитайте http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems, http://meta.stackoverflow.com/q/261592/128421 и http://meta.stackexchange.com/questions/10811/how-do-i-ask-and-answer-homework-questions/10812#10812 –

ответ

0

Не используйте INPLACE версию gsub:

# user_input.gsub!(/s/, "th") 
# user_input.gsub!(/c/, "s") 

gsubbed = user_input.gsub(/s/, "th").gsub(/c/, "s") 
puts "Changed version: '#{gsubbed}'" 
puts "Original version: '#{user_input}'" 

Обратите внимание на отсутствие восклицательных знаков в функции имен.

+0

, но как бы я его распечатал? Если я просто удалю "!" то он не изменит результат на пользователя –

+0

Ум, чтобы попытаться выполнить код, который я предоставил? В 'gsubbed' есть измененная версия,' user_input' остается нетронутой. – mudasobwa

+0

ах, спасибо! так просто. –

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