#include <stdio.h>
#define SIZE 3
#define NAMESIZE 20
struct president
{
char name [ NAMESIZE] ;
} ;
int main ( )
{
int i; /* loop index */
/* These are my three favorite presidents */
struct president myPresidents [ SIZE] = {
{ "Ronald Reagan" } ,
{ "George Washington" } ,
{ "Thomas Jefferson" }
} ;
printf ( "\n Print whatever size the names are, Left Justified \n " ) ;
for ( i = 0 ; i < SIZE; ++ i )
{
printf ( "%s\n " ,
myPresidents[ i] .name ) ;
}
printf ( "\n \n Take up a minimum of 20 spaces, Right Justified \n " ) ;
for ( i = 0 ; i < SIZE; ++ i )
{
printf ( "%20s\n " ,
myPresidents[ i] .name ) ;
}
printf ( "\n \n Take up a minimum of 10 spaces, pad as needed, Left Justified \n " ) ;
printf ( "... if name is longer, it will still print all characters\n " ) ;
for ( i = 0 ; i < SIZE; ++ i )
{
printf ( "%-10s\n " ,
myPresidents[ i] .name ) ;
}
printf ( "\n \n Print a maximum of 15 characters, pad if needed, Left Justified," ) ;
printf ( "\n ... this is good if you need to limit a field size being displayed \n " ) ;
for ( i = 0 ; i < SIZE; ++ i )
{
printf ( "%-15.15s\n " ,
myPresidents[ i] .name ) ;
}
printf ( "\n \n Print 20 characters, pad with spaces if needed, Left Justified," ) ;
printf ( "\n ... this is good if you need to display all characters, \n " ) ;
printf ( "\n and really useful in lining up items in a table format. \n " ) ;
for ( i = 0 ; i < SIZE; ++ i )
{
printf ( "%-20.20s\n " ,
myPresidents[ i] .name ) ;
}
return ( 0 ) ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+IAoKI2RlZmluZSBTSVpFIDMKI2RlZmluZSBOQU1FU0laRSAyMAoKc3RydWN0IHByZXNpZGVudCAKeyAKICAgIGNoYXIgbmFtZSBbTkFNRVNJWkVdOyAKfTsgCgppbnQgbWFpbiAoKSAKeyAKICAgIGludCBpOyAvKiBsb29wIGluZGV4ICovIAoKICAgIC8qIFRoZXNlIGFyZSBteSB0aHJlZSBmYXZvcml0ZSBwcmVzaWRlbnRzICovIAogICAgc3RydWN0IHByZXNpZGVudCBteVByZXNpZGVudHMgW1NJWkVdID0geyAKICAgICAgICB7IlJvbmFsZCBSZWFnYW4ifSwgCiAgICAgICAgeyJHZW9yZ2UgV2FzaGluZ3RvbiJ9LCAKICAgICAgICB7IlRob21hcyBKZWZmZXJzb24ifSAKICAgIH07IAoKICAgIHByaW50ZiAoIlxuUHJpbnQgd2hhdGV2ZXIgc2l6ZSB0aGUgbmFtZXMgYXJlLCBMZWZ0IEp1c3RpZmllZCBcbiIpOyAKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyArK2kgKSAKICAgIHsgCiAgICAgICAgcHJpbnRmICgiJXNcbiIsIAogICAgICAgIG15UHJlc2lkZW50c1tpXS5uYW1lKTsgCiAgICB9IAoKICAgIHByaW50ZiAoIlxuXG5UYWtlIHVwIGEgbWluaW11bSBvZiAyMCBzcGFjZXMsIFJpZ2h0IEp1c3RpZmllZCBcbiIpOyAKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyArK2kgKSAKICAgIHsgCiAgICAgICAgcHJpbnRmICgiJTIwc1xuIiwgCiAgICAgICAgbXlQcmVzaWRlbnRzW2ldLm5hbWUpOyAKICAgIH0gCgogICAgcHJpbnRmICgiXG5cblRha2UgdXAgYSBtaW5pbXVtIG9mIDEwIHNwYWNlcywgcGFkIGFzIG5lZWRlZCwgTGVmdCBKdXN0aWZpZWQgXG4iKTsgCiAgICBwcmludGYgKCIuLi4gaWYgbmFtZSBpcyBsb25nZXIsIGl0IHdpbGwgc3RpbGwgcHJpbnQgYWxsIGNoYXJhY3RlcnNcbiIpOyAKICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyArK2kgKSAKICAgIHsgCiAgICAgICAgcHJpbnRmICgiJS0xMHNcbiIsIAogICAgICAgIG15UHJlc2lkZW50c1tpXS5uYW1lKTsgCiAgICB9IAoKICAgIHByaW50ZiAoIlxuXG5QcmludCBhIG1heGltdW0gb2YgMTUgY2hhcmFjdGVycywgcGFkIGlmIG5lZWRlZCwgTGVmdCBKdXN0aWZpZWQsIik7IAogICAgcHJpbnRmICgiXG4uLi4gdGhpcyBpcyBnb29kIGlmIHlvdSBuZWVkIHRvIGxpbWl0IGEgZmllbGQgc2l6ZSBiZWluZyBkaXNwbGF5ZWQgXG4iKTsgCiAgICBmb3IgKGkgPSAwOyBpIDwgU0laRTsgKytpICkgCiAgICB7IAogICAgICAgIHByaW50ZiAoIiUtMTUuMTVzXG4iLCAKICAgICAgICBteVByZXNpZGVudHNbaV0ubmFtZSk7IAogICAgfQogICAgCiAgICBwcmludGYgKCJcblxuUHJpbnQgMjAgY2hhcmFjdGVycywgcGFkIHdpdGggc3BhY2VzIGlmIG5lZWRlZCwgTGVmdCBKdXN0aWZpZWQsIik7IAogICAgcHJpbnRmICgiXG4uLi4gdGhpcyBpcyBnb29kIGlmIHlvdSBuZWVkIHRvIGRpc3BsYXkgYWxsIGNoYXJhY3RlcnMsIFxuIik7CiAgICBwcmludGYgKCJcbmFuZCByZWFsbHkgdXNlZnVsIGluIGxpbmluZyB1cCBpdGVtcyBpbiBhIHRhYmxlIGZvcm1hdC4gXG4iKTsKICAgIGZvciAoaSA9ICAwOyBpIDwgU0laRTsgKytpICkgCiAgICB7IAogICAgICAgIHByaW50ZiAoIiUtMjAuMjBzXG4iLCAKICAgICAgICBteVByZXNpZGVudHNbaV0ubmFtZSk7IAogICAgfSAKCiAgICByZXR1cm4gKDApOyAKfQ==
stdout
Print whatever size the names are, Left Justified
Ronald Reagan
George Washington
Thomas Jefferson
Take up a minimum of 20 spaces, Right Justified
Ronald Reagan
George Washington
Thomas Jefferson
Take up a minimum of 10 spaces, pad as needed, Left Justified
... if name is longer, it will still print all characters
Ronald Reagan
George Washington
Thomas Jefferson
Print a maximum of 15 characters, pad if needed, Left Justified,
... this is good if you need to limit a field size being displayed
Ronald Reagan
George Washingt
Thomas Jefferso
Print 20 characters, pad with spaces if needed, Left Justified,
... this is good if you need to display all characters,
and really useful in lining up items in a table format.
Ronald Reagan
George Washington
Thomas Jefferson