Tiny C Projects
- Length: 384 pages
- Edition: 1
- Language: English
- Publisher: Manning
- Publication Date: 2022-12-27
- ISBN-10: 1633439828
- ISBN-13: 9781633439825
- Sales Rank: #661569 (See Top 100 Books)
Learn the big skills of C programming by creating bite-size projects! Work your way through these 15 fun and interesting tiny challenges to master essential C techniques you’ll use in full-size applications.
In Tiny C Projects you will learn how to:
- Create libraries of functions for handy use and re-use
- Process input through an I/O filter to generate customized output
- Use recursion to explore a directory tree and find duplicate files
- Develop AI for playing simple games
- Explore programming capabilities beyond the standard C library functions
- Evaluate and grow the potential of your programs
- Improve code to better serve users
Tiny C Projects is an engaging collection of 15 small programming challenges! This fun read develops your C abilities with lighthearted games like tic-tac-toe, utilities like a useful calendar, and thought-provoking exercises like encoding and cyphers. Jokes and lighthearted humor make even complex ideas fun to learn. Each project is small enough to complete in a weekend, and encourages you to evolve your code, add new functions, and explore the full capabilities of C.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
The best way to gain programming skills is through hands-on projects—this book offers 15 of them. C is required knowledge for systems engineers, game developers, and roboticists, and you can start writing your own C programs today. Carefully selected projects cover all the core coding skills, including storing and modifying text, reading and writing files, searching your computer’s directory system, and much more.
About the book
Tiny C Projects teaches C gradually, from project to project. Covering a variety of interesting cases, from timesaving tools, simple games, directory utilities, and more, each program you write starts out simple and gets more interesting as you add features. Watch your tiny projects grow into real applications and improve your C skills, step by step.
What’s inside
- Caesar cipher solver: Use an I/O filter to generate customized output
- Duplicate file finder: Use recursion to explore a directory tree
- Daily greetings: Writing the moon phase algorithm
- Lotto pics: Working with random numbers
- And 11 more fun projects!
About the reader
For C programmers of all skill levels.
About the author
Dan Gookin has over 30 years of experience writing about complex topics. His most famous work is DOS For Dummies, which established the entire For Dummies brand.
Tiny C Projects Copyright contents front matter preface Is C programming still relevant? Why did I write this book? acknowledgments about this book Who should read this book? How this book is organized: A road map Software/hardware requirements Online resources About the code liveBook discussion forum about the author about the cover illustration 1 Configuration and setup 1.1 The C development cycle 1.1.1 Editing source code 1.1.2 Compiling, linking, building 1.2 The integrated development environment (IDE) 1.2.1 Choosing an IDE 1.2.2 Using Code::Blocks 1.2.3 Using XCode 1.3 Command-line compiling 1.3.1 Accessing the terminal window 1.3.2 Reviewing basic shell commands 1.3.3 Exploring text screen editors 1.3.4 Using a GUI editor 1.3.5 Compiling and running 1.4 Libraries and compiler options 1.4.1 Linking libraries and setting other options in an IDE 1.4.2 Using command-line compiler options 1.5 Quiz 2 Daily greetings 2.1 The shell starts 2.1.1 Understanding how the shell fits in 2.1.2 Exploring various shell startup scripts 2.1.3 Editing the shell startup script 2.2 A simple greeting 2.2.1 Coding a greeting 2.2.2 Adding a name as an argument 2.3 The time of day 2.3.1 Obtaining the current time 2.3.2 Mixing in the general time of day 2.3.3 Adding specific time info 2.4 The current moon phase 2.4.1 Observing moon phases 2.4.2 Writing the moon phase algorithm 2.4.3 Adding the moon phase to your greeting 2.5 A pithy saying 2.5.1 Creating a pithy phrase repository 2.5.2 Randomly reading a pithy phrase 2.5.3 Adding the phrase to your greeting code 3 NATO output 3.1 The NATO alphabet 3.2 The NATO translator program 3.2.1 Writing the NATO translator 3.2.2 Reading and converting a file 3.3 From NATO to English 3.3.1 Converting NATO input to character output 3.3.2 Reading NATO input from a file 4 Caesarean cipher 4.1 I/O filters 4.1.1 Understanding stream I/O 4.1.2 Writing a simple filter 4.1.3 Working a filter at the command prompt 4.2 On the front lines with Caesar 4.2.1 Rotating 13 characters 4.2.2 Devising a more Caesarean cipher 4.3 Deep into filter madness 4.3.1 Building the hex output filter 4.3.2 Creating a NATO filter 4.3.3 Filtering words 5 Encoding and decoding 5.1 The concept of plain text 5.1.1 Understanding ASCII 5.1.2 Exploring the control codes 5.1.3 Generating noncharacter output 5.1.4 Playing with ASCII conversion tricks 5.2 The hex encoder/decoder 5.2.1 Writing a simple hex encoder/decoder 5.2.2 Coding a better hex encoder/decoder 5.2.3 Adding a wee bit of error-checking 5.3 URL encoding 5.3.1 Knowing all the URL encoding rules 5.3.2 Writing a URL encoder 5.3.3 Creating a URL decoder 6 Password generators 6.1 Password strategies 6.1.1 Avoiding basic and useless passwords 6.1.2 Adding password complexity 6.1.3 Applying the word strategy 6.2 The complex password jumble 6.2.1 Building a silly random password program 6.2.2 Adding conditions to the password program 6.2.3 Improving upon the password 6.3 Words in passwords 6.3.1 Generating random words, Mad Libs style 6.3.2 Building a random word password generator 7 String utilities 7.1 Strings in C 7.1.1 Understanding the string 7.1.2 Measuring a string 7.1.3 Reviewing C string functions 7.1.4 Returning versus modifying directly 7.2 String functions galore 7.2.1 Changing case 7.2.2 Reversing a string 7.2.3 Trimming a string 7.2.4 Splitting a string 7.2.5 Inserting one string into another 7.2.6 Counting words in a string 7.2.7 Converting tabs to spaces 7.3 A string library 7.3.1 Writing the library source and header file 7.3.2 Creating a library 7.3.3 Using the string library 7.4 A kinda OOP approach 7.4.1 Adding a function to a structure 7.4.2 Creating a string “object” 8 Unicode and wide characters 8.1 Text representation in computers 8.1.1 Reviewing early text formats 8.1.2 Evolving into ASCII text and code pages 8.1.3 Diving into Unicode 8.2 Wide character programming 8.2.1 Setting the locale 8.2.2 Exploring character types 8.2.3 Generating wide character output 8.2.4 Receiving wide character input 8.2.5 Working with wide characters in files 9 Hex dumper 9.1 Bytes and data 9.1.1 Reviewing storage units and size mayhem 9.1.2 Outputting byte values 9.1.3 Dumping data 9.2 Dump that file! 9.2.1 Reading file data 9.2.2 Fixing uneven output 9.3 Command-line options 9.3.1 Using the getopt() function 9.3.2 Updating the dumpfile program code 9.3.3 Setting abbreviated output 9.3.4 Activating octal output 10 Directory tree 10.1 The filesystem 10.2 File and directory details 10.2.1 Gathering file info 10.2.2 Exploring file type and permissions 10.2.3 Reading a directory 10.3 Subdirectory exploration 10.3.1 Using directory exploration tools 10.3.2 Diving into a subdirectory 10.3.3 Mining deeper with recursion 10.4 A directory tree 10.4.1 Pulling out the directory name 10.4.2 Monitoring directory depth 11 File finder 11.1 The great file hunt 11.2 A file finder 11.2.1 Coding the Find File utility 11.2.2 Understanding the glob 11.2.3 Using wildcards to find files 11.3 The duplicate file finder 11.3.1 Building a file list 11.3.2 Locating the duplicates 12 Holiday detector 12.1 The operating system wants its vig 12.1.1 Understanding exit status versus the termination status 12.1.2 Setting a return value 12.1.3 Interpreting the return value 12.1.4 Using the preset return values 12.2 All about today 12.2.1 Getting today’s date 12.2.2 Obtaining any old date 12.3 Happy holidays 12.3.1 Reviewing holidays in the United States 12.3.2 Discovering holidays in the UK 12.4 Is today a holiday? 12.4.1 Reporting regular date holidays 12.4.2 Dealing with irregular holidays 12.4.3 Calculating Easter 12.4.4 Running the date gauntlet 13 Calendar 13.1 The calendar program 13.2 Good dates to know 13.2.1 Creating constants and enumerating dates 13.2.2 Finding the day of the week 13.2.3 Calculating the first day of the month 13.2.4 Identifying leap years 13.2.5 Getting the time zone correct 13.3 Calendar utilities 13.3.1 Generating a week 13.3.2 Showing a month 13.3.3 Displaying a full year 13.3.4 Putting the full year into a grid 13.4 A calendar in color 13.4.1 Understanding terminal colors 13.4.2 Generating a tight-but-colorful calendar 13.4.3 Coloring holidays 14 Lotto picks 14.1 A tax for those who are bad at math 14.1.1 Playing the lottery 14.1.2 Understanding the odds 14.1.3 Programming the odds 14.2 Here are your winning numbers 14.2.1 Generating random values 14.2.2 Drawing lotto balls 14.2.3 Avoiding repeated numbers, another approach 14.3 Never tell me the odds 14.3.1 Creating the lotto() function 14.3.2 Matching lottery picks 14.3.3 Testing the odds 15 Tic-tac-toe 15.1 A silly kids’ game 15.1.1 Playing tic-tac-toe 15.1.2 Approaching the game mathematically 15.2 The basic game 15.2.1 Creating the game grid 15.2.2 Adding game play 15.2.3 Limiting the input to free squares 15.2.4 Determining the winner 15.3 The computer plays 15.3.1 Choosing the number of players 15.3.2 Coding a dumb opponent 15.3.3 Adding some intelligence index
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.