[SPCA] Finish arrays, strings, some fixes

This commit is contained in:
2026-01-06 08:54:50 +01:00
parent 96da3d8334
commit 74205e8cf0
14 changed files with 28 additions and 0 deletions

View File

@@ -11,5 +11,10 @@ int main( int argc, char *argv[] ) {
printf( "%d\n", *( data + 5 ) ); // equivalent as above
int multidim[ 5 ][ 5 ]; // 2-dimensional array
// We can iterate over it using two for-loops
int init_array[ 2 ][ 2 ] = {
{1, 2},
{3, 4}
}; // We can initialize an array like this
int empty_arr[ 4 ] = {}; // Initialized to 0
return 0;
}

View File

@@ -0,0 +1,15 @@
#include <stdio.h>
#include <string.h>
int main( int argc, char *argv[] ) {
char hello[ 6 ] = "hello"; // Using double quotes
char world[ 6 ] = { 'w', 'o', 'r', 'l', 'd', '\0' }; // As array
char src[ 12 ], dest[ 12 ];
strncpy( src, "ETHZ", 12 ); // Copy strings (extra elements will be set to \0)
strncpy( dest, src, 12 ); // Copy strings (last arg is first n chars to copy)
if ( strncmp( src, dest, 12 ) ) // Compare two strings. Returns 1 if src > dest
printf( "Hello World" );
strncat( dest, " is in ZH", 12 ); // Concatenate strings
return 0;
}

View File

@@ -0,0 +1,6 @@
\subsubsection{Strings}
\lC\ doesn't have a \texttt{string} data type, but rather, strings are represented (when using \texttt{ASCII}) as \texttt{char} arrays,
with length of the array $n + 1$ (where $n$ is the number of characters of the string).
The extra element is the termination character, called the \texttt{null character}, denoted \verb|\0|.
To determine the actual length of the string (as it may be padded), we can use \verb|strnlen(str, maxlen)| from \texttt{string.h}
\inputcodewithfilename{c}{code-examples/00_c/}{04_strings.c}

View File

@@ -0,0 +1 @@
\subsection{The C preprocessor}

Binary file not shown.

View File

@@ -67,6 +67,7 @@
\input{parts/00_c/01_basics/04_arrays.tex}
\input{parts/00_c/01_basics/05_strings.tex}
\input{parts/00_c/01_basics/06_pointers.tex}
\input{parts/00_c/02_preprocessor/00_intro.tex}
% ── Intro to x86 asm ────────────────────────────────────────────────