notebook/notes/c/strings.md

13 KiB

title TARGET DECK FILE TAGS tags
Strings Obsidian::STEM c
c

Overview

A contiguous sequence of characters terminated by the NUL character (refer to ascii). Text data is said to be more platform-independent than endianness data since it is unaffected by word size or byte ordering.

%%ANKI Basic What is a C-style string? Back: A character array terminated with a NUL character. Reference: Bryant, Randal E., and David O'Hallaron. Computer Systems: A Programmer's Perspective. Third edition, Global edition. Always Learning. Pearson, 2016.

END%%

%%ANKI Basic What character terminates all C-style strings? Back: NUL Reference: Bryant, Randal E., and David O'Hallaron. Computer Systems: A Programmer's Perspective. Third edition, Global edition. Always Learning. Pearson, 2016.

END%%

%%ANKI Basic What is the decimal value of NUL in ASCII encoding? Back: 0 Reference: Bryant, Randal E., and David O'Hallaron. Computer Systems: A Programmer's Perspective. Third edition, Global edition. Always Learning. Pearson, 2016.

END%%

%%ANKI Basic Text is more platform-independent than binary because it is unaffected by what two properties? Back: Word size and byte ordering. Reference: Bryant, Randal E., and David O'Hallaron. Computer Systems: A Programmer's Perspective. Third edition, Global edition. Always Learning. Pearson, 2016.

END%%

printf

The syntax for the format placeholder is %[flags][width][.precision][length]specifier.

Flag Description
- Left-aligns the output
+ Prepends a plus for positive signed-numeric types
Prepends a space for positive signed-numeric types
0 Prepends zeros for numeric types

%%ANKI Cloze The {-} flag {left-aligns the output}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic The - flag overrides what default behavior? Back: Output is right-aligned by default. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Cloze The {+} flag {prepends a plus for positive signed-numeric types}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic The + flag overrides what default behavior? Back: Nothing is prepended to positive signed-numeric types by default. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Cloze The {} flag {prepends a space for positive signed-numeric types}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic The flag overrides what default behavior? Back: Nothing is prepended to positive signed-numeric types by default. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic How do the + and flags relate to one another? Back: Both prepend a character to positive signed-numeric types. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic What happens if both the + and flags are specified? Back: The + flag takes precedence. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Cloze The {0} flag {prepends zeros for numeric types}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic What option must be specified for the 0 flag to take effect? Back: The "width" option. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

%%ANKI Basic The 0 flag overrides what default behavior? Back: Spaces are used to match the "width" option by default. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962.

END%%

Specifier Description
d, i a decimal signed int
u a decimal unsigned int
x a hexadecimal unsigned int (lowercase)
X a hexadecimal unsigned int (uppercase)
o an octal unsigned int
s a NUL-terminated string
c a char character
p void* address in an implementation-defined format

%%ANKI Basic What character do printf format specifiers start with? Back: % Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Why is printf named the way it is? Back: It stands for print formatted. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {d and i} format specifers output a {decimal signed int}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze {d and i} are to signed as {u} is to unsigned. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {u} format specifier outputs a {decimal unsigned int}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic What distinguishes format specifiers d and i? Back: Nothing. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifiers were probably used to yield printf output -12? Back: d or i Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic What distinguishes format specifiers d and u? Back: The former is for signed integers, the latter unsigned. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {x} format specifier outputs a {lowercase hexadecimal unsigned int}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifier were probably used to yield printf output 7af? Back: x Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {X} format specifier outputs an {uppercase hexadecimal unsigned int}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifier were probably used to yield printf output 7AF? Back: X Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic What distinguishes format specifiers x and X? Back: The former outputs lowercase hex digits, the latter uppercase. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {o} format specifier outputs an {octal unsigned int}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Why doesn't the o format specifier have a corresponding O specifier? Back: There is no distinction between lower and uppercase octal digits. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {s} format specifiers outputs a {NUL-terminated string}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifier was probably used to yield printf output abc? Back: s Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {c} format specifier outputs a {char character}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifier was probably used to yield printf output a? Back: c Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Cloze The {p} format specifier outputs a {void* address}. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic Which format specifier was probably used to yield printf output 0b80000000? Back: p Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

%%ANKI Basic How is the address outputted by the p format specifier written? Back: In an implementation-specific way. Reference: “Printf,” in Wikipedia, January 18, 2024, https://en.wikipedia.org/w/index.php?title=Printf&oldid=1196716962. Tags: printf

END%%

References