An open API service indexing awesome lists of open source software.

https://github.com/asem-hamid/learn-c

This repository is designed to help beginners learn C programming through code examples, projects, and detailed explanations.
https://github.com/asem-hamid/learn-c

beginner-friendly c

Last synced: 11 months ago
JSON representation

This repository is designed to help beginners learn C programming through code examples, projects, and detailed explanations.

Awesome Lists containing this project

README

          

# Learn C

![learncbanner](https://github.com/user-attachments/assets/c8fa9c42-e67c-4918-85bc-0182e3fa88cd)

Welcome to the Learn C repository! This repository is designed to help beginners learn
C programming through code examples, projects, and detailed explanations.
Additionally, contributions from the community are highly encouraged to enhance and expand the content.

## Table of Contents

- [Introduction](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L19)
- [Features](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L31)
- [Getting Started](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L39)
- [Usage](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L64)
- [Chapter List](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L71)
- [Contributing](https://github.com/asem-hamid/learn-c/blob/15b3140dceaafcb3e0ff7266da757b6db84419fd/README.md?plain=1#L100)

## Introduction

This repository contains a collection of C programming tutorials, examples, and projects.
It is designed to be a comprehensive resource for anyone looking to
learn C from scratch or to deepen their understanding of the language.

Hi, I'm [Asem Hamid](https://www.linkedin.com/in/asemhamid/), the creator of this repository.
My goal is to share my learning journey in C programming with the community in a way
that is easy to understand and beneficial to learners of all levels.
I hope you find this repository helpful, and I look forward to seeing your contributions to improve it.

## Features

- **Beginner-Friendly:** Simple and easy-to-follow code examples.
- **Comprehensive Coverage:** Topics ranging from basic syntax to advanced concepts.
- **Interactive Projects:** Hands-on projects like a Snake-Ladder Game to reinforce learning.
- **Community Contributions:** Open for contributions to continuously improve and expand the content.

## Getting Started

To get started with the code and content in this repository, follow these steps:

1. **Install and set up prerequisites :** [vs-code](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/vs-code.md) , [c compiler](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/compiler.md) , [git](https://github.com/asem-hamid/learn-c/blob/main/content/00-prerequisites/git.md)

2. **Clone the Repository:**

```sh
git clone https://github.com/asem-hamid/learn-c.git

cd learn-c

cd content
```

3. **Explore the Code:** Browse through the folders and files to find tutorials, examples, and projects.

4. **Run the Code:** Compile and run the examples using a C compiler

```sh
gcc filename.c -o filename

./filename
```

## Usage

- **Compile and Run Examples:** Navigate to the desired folder and compile the code using a C compiler.
- **Modify and Experiment:** Feel free to modify the code to see how changes affect the output.
- **Learn and Understand:** Read the comments and documentation within the code to understand each concept.

## Chapter List

### Basics

- [01-basic](https://github.com/asem-hamid/learn-c/tree/main/content/01-basic:) Introduction to basic concepts, syntax, and structure of C programs.
- [02-operators:](https://github.com/asem-hamid/learn-c/tree/main/content/02-operators) Detailed explanations and examples of different operators in C.
- [03-conditional:](https://github.com/asem-hamid/learn-c/tree/main/content/03-conditional) Control flow statements like if-else and switch-case.
- [04-loop:](https://github.com/asem-hamid/learn-c/tree/main/content/04-loop) Looping constructs including for, while, and do-while loops.
- [05-function:](https://github.com/asem-hamid/learn-c/tree/main/content/05-function) Functions, their declarations, definitions, and usage.

### Intermediate

- [06-recursion:](https://github.com/asem-hamid/learn-c/tree/main/content/06-recursion) Recursive functions and their applications.
- [07-array:](https://github.com/asem-hamid/learn-c/tree/main/content/07-array) Arrays, both single-dimensional and multi-dimensional.
- [08-pointer:](https://github.com/asem-hamid/learn-c/tree/main/content/08-pointer) Pointers, pointer arithmetic, and pointers to arrays and functions.
- [09-string:](https://github.com/asem-hamid/learn-c/tree/main/content/09-string) String operations and functions.
- [10-structures:](https://github.com/asem-hamid/learn-c/tree/main/content/10-structures) User-defined data types using structures.

### Advanced

- [11-unions:](https://github.com/asem-hamid/learn-c/tree/main/content/11-unions) Unions and their usage.
- [12-DMA:](https://github.com/asem-hamid/learn-c/tree/main/content/12-DMA) Dynamic Memory Allocation using malloc, calloc, realloc, and free.
- [13-file-handling:](https://github.com/asem-hamid/learn-c/tree/main/content/13-file-handling) File input and output operations.

- [extra:](https://github.com/asem-hamid/learn-c/tree/main/content/extra) Additional topics and advanced concepts.

### Projects :

- [Snake and Ladder Game](https://github.com/asem-hamid/learn-c/blob/main/projects/snake-and-ladder.md)

## Contributing

For detailed guidelines, check the [CONTRIBUTING.md](https://github.com/asem-hamid/learn-c/blob/main/CONTRIBUTING.md) .

## License

This project is licensed under the MIT License. See the [LICENSE](https://github.com/asem-hamid/learn-c/blob/main/LICENSE) file for details.