78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // For more tutorials: https://blog.learngoprogramming.com
 | |
| //
 | |
| // Copyright © 2018 Inanc Gumus
 | |
| // Learn Go Programming Course
 | |
| // License: https://creativecommons.org/licenses/by-nc-sa/4.0/
 | |
| //
 | |
| 
 | |
| /*
 | |
| ------------------------------------------------------------
 | |
| RULES
 | |
| ------------------------------------------------------------
 | |
| 
 | |
| * You shouldn't use a standard library function.
 | |
| 
 | |
| * You should only solve the challenge by manipulating the bytes directly.
 | |
| 
 | |
| * Manipulate the bytes of a string using indexing, slicing, appending etc.
 | |
| 
 | |
| * Be efficient: Do not use string concat (+ operator).
 | |
| 
 | |
| 	* Instead, create a new byte slice as a buffer from the given string argument.
 | |
| 
 | |
| 	* Then, manipulate it during your program.
 | |
| 
 | |
| 	* And, for once, print that buffer.
 | |
| 
 | |
| ------------------------------------------------------------
 | |
| STEPS
 | |
| ------------------------------------------------------------
 | |
| 
 | |
| * Mask only links starting with http://
 | |
| 
 | |
| * Don't check for uppercase/lowercase letters
 | |
| 	* The goal is to learn manipulating bytes in strings
 | |
| 	* It's not about creating a perfect masker
 | |
| 
 | |
| 	* For example: A spammer can prevent the masker like this (for now this is OK):
 | |
| 
 | |
| 	  "Here's my spammy page: hTTp://youth-elixir.com"
 | |
| 
 | |
| * But, you should catch this:
 | |
| 
 | |
| 	  "Here's my spammy page: http://hehefouls.netHAHAHA see you."
 | |
| 	  "Here's my spammy page: http://******************* see you."
 | |
| */
 | |
| package main
 | |
| 
 | |
| func main() {
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// #1
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// Check whether there's a command line argument or not
 | |
| 	// If not, quit from the program with a message
 | |
| 
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// #2
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// Create a byte buffer as big as the argument
 | |
| 
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// #3
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// 1- Loop and detect the http:// patterns
 | |
| 	// 2- Copy the input character by character to the buffer
 | |
| 	// 3- If you detect http:// pattern, copy the http:// first,
 | |
| 	//    then copy the *s instead of the original link until
 | |
| 	//    you see a whitespace character.
 | |
| 	//
 | |
| 	//    Here: http://www.mylink.com Click!
 | |
| 	// -> Here: http://************** Click!
 | |
| 	//
 | |
| 
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// #4
 | |
| 	// ---------------------------------------------------------------
 | |
| 	// Print the buffer as a string
 | |
| }
 |