30 Seconds of C
P.S: This repository is a work in progress
Getting Started
- Use Ctrl + F or command + F to search for a snippet.
- Contributions welcome, please read the contribution guide.
Motivation for this project The core goal of 30 seconds of C is to provide a public record of my journey to learn c programming. It's my goal to provide a quality resource for both beginners and advanced c progammers/developers. My initial motivation for creating this repository was to use it as a tool to document my journey at the 42 Silicon Valley - an engineering and programming. The contents of this repo are designed to help you write real time C programs on your own.
Table of Contents
📃 Basic Data Types
Integer
Character
- char
- float
- Double
➗ Enumeration Data Type
📚 Derived Data Type
🎛️ Void Data Type
Exam Shell
Purpose:
This repo provides useful tips to understand how to achieve 100% at 42 Silicon Valley exams.
A great developer like you
aff_a
Create a program that takes a string, and displays the first 'a' character it encounters in it, followed by a newline. If there are no 'a' characters in the string, the program just writes a newline. If the number of parameters is not 1, the program displays 'a' followed by a newline.
$> ./aff_a "abc" | cat -e
a$
$> ./aff_a "dubO a POIL" | cat -e
a$
$> ./aff_a "zz sent le poney" | cat -e
$
$> ./aff_a | cat -e
a$
Answer
#include <unistd.h>
int main(int argc, char **argv)
{
if (argc != 2)
write(1, "a", 1);
else
{
while (*argv[1])
if (*argv[1] == 'a')
{
write(1, "a", 1);
argv[1]++;
break;
}
}
write(1, "\n", 1);
return (0);
}
ft_countdown
Write a program that displays all digits in descending order, followed by a newline.
$> ./ft_countdown | cat -e
9876543210$
$>
Answer
#include <unistd.h>
int main(void)
{
char c;
c = '9';
while (c >= '0')
{
write(1, &c, 1);
c--;
}
write(1, "\n", 1);
return (0);
}
ft_print_numbers
Write a function that displays all digits in ascending order.
Your function must be declared as follows:
void ft_print_numbers(void);
Answer
#include <unistd.h>
int main(void)
{
char c;
c = '0';
while (c <= '9')
{
write(1, &c,1);
c++;
}
write(1, "\n", 1);
return (0);
}
Additional Learning Resources
If you are new to C Programming, try taking a look at some of these references.
Books
- ANSI 89 – American National Standards Institute, American National Standard for Information Systems Programming Language C, 1989.
- Kernighan 78 – B. W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall: Englewood Cliffs, NJ, 1978. Second edition, 1988.
- Thinking 90 – C* Programming Guide, Thinking Machines Corp. Cambridge Mass., 1990.
- Head First C - A complete learning experience for C and structured imperative programming.
Websites
- GeeksforGeeks - A computer science portal for geeks.
- SoloLearn - C Tutorial
- C Programming Google+ Community
Online Integrated Development Environments (IDEs)
- C Tutor - Visualize C code execution to learn C online
- Ideone - An nline compiler and debugging tool
- SoloLearn - Code Playground
Inspiration for this project
The idea behind 30 Seconds of C was inspired some people who created similar collections in other programming languages and environments. Here are the ones we like the most:
- 30 Seconds of Code by charlarangelo
- 30 Seconds of CSS by atomiks
- 30 Seconds of Python by kriadmin
- 30 Seconds of Interviews by fejes713
How to Contribute
Do you have a cool idea for a new snippet, or want to add your own tips? Checkout contributing.md.
Collaborators
Credits
Icon made by Smashicons from www.flaticon.com is licensed by CC 3.0 BY.
This site was built using GitHub Pages.