scanf(“%[^\n]s”, str) Vs gets(str) in C with Examples
- gets is a more convenient method of reading a string of text containing whitespaces.
- Unlike scanf(), it does not skip whitespaces.
- It is used to read the input until it encounters newline.
- It is an edit conversion code.
- The edit conversion code %[^\n] can be used as an alternative of gets.
- C supports this format specification with scanf() function.
- This edit conversion code can be used to read a line containing characters like variables and even whitespaces.
- In general scanf() function with format specification like %s and specification with the field width in the form of %ws can read-only strings till non-whitespace part.
- It means they cannot be used for reading a text containing more than one word, especially with Whitespaces.
Table of difference and similarities between gets() and %[^\n]
|gets() is used to read strings||%[^\n] is an edit conversion code used to read strings|
|Unlike scanf(), gets() reads strings even with whitespaces||%[^\n] also reads strings with whitespaces|
|when it reads a newline character then the gets() function will be terminated||%[^\n] also terminates with a newline character|
Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up