Learn to Code via Tutorials on Repl.it!

← Back to all posts
C Wars, Chapter One: The Segfault menace
CodeLongAndPros

Hello, World! 🖖

To compete with @HahaYes C++ tutorial, I take the side of C, as defined in The C programming language, second edition by Brain Kerninghan and Dennsi Ritchie.

Edit: Chapter two is out

Now:

Let the games begin!

Chapter 1, part 1:

Hello World

The only real way to learn a language is to start programming in it.

So, we will do Hello world.

Code

Please make a new C repl, and enter this code into it.

(No Copy-Paste)

Run

If you are in repl, press C-ret, or 'Run'

If you are on a *NIX system use this:

gcc hello.c -Wall -Werror -o main.o && chmod +x main.o && ./main.o

If you are on Windows, download 50G of IDE and C++/Python/NET compilers (VS) and make a new project and hope your computer won't crash.

Output

You should see this appear in your terminal:

Chapter 1, part 2

Meta time

This section is very meta about C, and is not Strictly required.

Every C program has two parts:

  • Functions
  • Variables

Or, to be even more meta:

  • Code
  • Data

Let's dissect hello.c, line for line:

#include <stdio.h>

This may look like elvis elvish, but it is very simple.

The # char indicates a preprocesser directive.

The directive in question Prime include, includes other code in your program.

The prefix std means standard, and io means input/ouput

int main()

This is a function, or a snippet of code.

Every function has the form return_type name(args)

In this one, we have a return type of int, named main that takes no arguments

{

In C, a curly brace ({/}) seperates blocks of code.
In this case, all you need to know is that all code between { and } is part of main

printf("Hello world");

This is another function, like main.

It is named printf. In non-programmer speak, it means print with formatting. The formatting part is in Chapter two. It takes one -or two- arguments, the string to print, and the format string.

All lines that don't start with a # or are a function end with ;. No exceptions. Ever.

In this case, we are asking it to print Hello world with no formmatting.

return 0;

This is a special statment, return. It returns a piece of Data, like a gift.
For main, the return value is normally used to tell if the program failed, or worked.

  • 0: It worked
  • 1: General error
  • 2+: Random error

And, last but not least:

}

This tells your computer that your are done with main and want to move on.

Chapter 1, part 3

Your challenge

You need to make a program that prints out three things:

  • Your favorite Browser (Firefox)
  • The operating system you don't like the most (Windows 10)
  • Your favorite type of pet (Dog)

Please give them to me in the comments

Example output:

Part One: The Segfault menace

Part Two: The data wars

Part Three: Revenge of the if

Part Four: A new loop

Part Five: The Empire points back

Part Six: Return of the function

Voters
Thomastomate
elcorreodeangel
RandomGuysRepl
saylamcenk
programmeruser
EpicGamer007
bcw5002
awesome10
Jamendez7
mkw
Comments
hotnewtop
Warhawk947

imma pro at coding watch me h4ck hAhAAhAhAHAHAHAHAHa

CodeLongAndPros
Jakman

Also none of this is elvish. C is a high level language.

CodeLongAndPros

@Jakman I was talking about preproc directives, for non programmers.

Jakman
CodeLongAndPros

@Jakman and there’s no preprocdirs in Python.

Jakman

@CodeLongAndPros well thats true. I love when people speak of the english programming language (Python).

CodeLongAndPros

@Jakman Yeah, but ever try to compile Python? I had a 100 mb bin.

Jakman

@CodeLongAndPros im going to be real. I havent touched python in a while.

MocaCDeveloper

@Jakman Eh, it is somewhat high level. But, out of seriousness, it is not a "high level language". Rephrase a bit.
It is a higher level low level language :)

CodeLongAndPros

@targetfanttthat A middle level language.

Jakman

@targetfanttthat Python is very high level. If it isnt neither is Scratch

awesome10

its right, right?

CodeLongAndPros

@awesome10 Well, this is C.

Not C++.

Look at @HahaYes's for C++

awesome10

@CodeLongAndPros it was on purpose

CodeLongAndPros

@awesome10 Well then:
FAIL

awesome10

@CodeLongAndPros well then:

CodeLongAndPros

@awesome10 The correct one is:

awesome10

@CodeLongAndPros

is bad and i actually like cats

CodeLongAndPros

@awesome10 Well, HahaYes does it...

But I know.

awesome10

@CodeLongAndPros well, i never said i learned all my cpp from hahayes and i actually like both cpp and c and c# the same wait that isn't 2 things watever

HahaYes

@CodeLongAndPros Why thanks man

CodeLongAndPros

@awesome10 Where's C?

awesome10

@HahaYes oh no you weren't supposed to be listening!

awesome10
CodeLongAndPros

@awesome10 Don't worry, I do that to him all the time.

awesome10

@CodeLongAndPros i said i liked cpp, c, and c# the same

HahaYes

@awesome10 I have seen your comments traitor. JK XD

awesome10

@HahaYes haha yes

CodeLongAndPros

@awesome10
Haha,
Segmentation fault (core dumped)

awesome10

@CodeLongAndPros

awesome10

@CodeLongAndPros

HahaYes

No not the traitor @CodeLongAndPros

Jakman
DynamicSquid

firefox sucks

CodeLongAndPros

@DynamicSquid How is this related?

CodeLongAndPros

@DynamicSquid Oh wait.

I just like FF better than Chrome..

HahaYes

@DynamicSquid Firefox > Chrome > internet explorer

CodeLongAndPros

@HahaYes Elinks is at the top

HahaYes

@CodeLongAndPros hmm let me guess rick roll

CodeLongAndPros

@HahaYes Yeah. #2 comes out tomorrow.

HahaYes

@CodeLongAndPros bro anytime I see a link I think... rick roll

CodeLongAndPros

@HahaYes For your awareness, you get a peek at Chapter two:

Examples of not-ints:

  • c
  • 134qwf
  • 55.0456
  • 192.168.0.0
HahaYes

@CodeLongAndPros no. I MUST BE BETTER THAN YOU

CodeLongAndPros

@HahaYes
Not to brag, but I'm great at Quiplash and can make a mean tutorial.

HahaYes

@CodeLongAndPros The tears of the dissapointed fans

CodeLongAndPros

@HahaYes You have a head start.

HahaYes
CodeLongAndPros

@HahaYes But a head start means nothing, compared to the simplicity of C.

HahaYes

@CodeLongAndPros NO I don't like C

CodeLongAndPros

@HahaYes

HahaYes

@CodeLongAndPros C++ better though

CodeLongAndPros

@HahaYes Cause?

Bookie0

Google > all
But Mac 💻 > all
@HahaYes

CodeLongAndPros

@Bookie0 No, Linux > Mac + Windows + Chrome

Bookie0

Big Mac 💻

@CodeLongAndPros

CodeLongAndPros

@Bookie0

BIGGER LINUX 🐧

Bookie0

Lol Apple 🍎 @CodeLongAndPros

HahaYes

This is going to compete

CodeLongAndPros

@HahaYes Chapter Two: The data wars will be EVEN BETTER.

HahaYes

@CodeLongAndPros You must not BE BETTER THAN ME

CodeLongAndPros

@HahaYes I mean, it's C++ vs C, so I will always win...

HahaYes

@CodeLongAndPros YOu shalt NOT PASS

CodeLongAndPros

@HahaYes sudo pass

HahaYes

@CodeLongAndPros sudo -install life

CodeLongAndPros

@HahaYes
sudo pacman -S life

CodeLongAndPros

@HahaYes And are you making a statement?

HahaYes

@CodeLongAndPros ubuntu or fedora?

HahaYes

@CodeLongAndPros sudo -statements suck

CodeLongAndPros

@HahaYes I use Manjaro btw

HahaYes

@CodeLongAndPros hmmm is manjaro better than ubuntu?

CodeLongAndPros

@HahaYes I think so, but it's not for total noobs.

HahaYes

@CodeLongAndPros whoa, I just looked at it. It looks awesome

CodeLongAndPros

@HahaYes I use Manjaro KDE:

HahaYes

@CodeLongAndPros hmmm which version of manjaro is the best

HahaYes

@CodeLongAndPros oh btw you have a nice laptop

CodeLongAndPros

@HahaYes Thanks.

To answer q1:

There is one version of Manjaro, since it is a rolling release

If you mean Desktop envrioment, there three:

  • XFCE. For weaker laptops
  • KDE. Like XFCE, but a bit heavier and more customizable (Mine)
  • GNOME: For touchscreens, but very heavy on both RAM and Cpu.
HahaYes

@CodeLongAndPros ah, so KDE for my i7 7th gen laptop

HahaYes

@CodeLongAndPros So there is no LTS?

CodeLongAndPros

@HahaYes Every time you run sudo pacman -Syu you have nearly the latest version of everything. (Manjaro holds updates back for a week for testing)

What version of GCC do you have? I have 10.1.0.

CodeLongAndPros

@HahaYes Also, do you have discord? I want to stop cluttering this up...

HahaYes

@CodeLongAndPros I run Ubuntu 20.04

HahaYes

@CodeLongAndPros I have GCC 10.1

CodeLongAndPros

@HahaYes What version of GCC do you have (gcc -v)

HahaYes

@CodeLongAndPros nah no discord

HahaYes
CodeLongAndPros

@HahaYes Well, the point is, Manjaro, (And it's daddy, Arch) have no real versions, because everything is up to date.

HahaYes
HahaYes

Wow! This project is actually really good quality!

HahaYes

WAIT WAT NO NO NO