From cdde8beea2e39d6161dd16c15ba0001019b955a1 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Thu, 2 Nov 2023 00:03:55 +0100 Subject: [PATCH] Beispiele 26.10.2023 --- 20231019/strings-07a.c | 21 ++++++++++++++ 20231019/strings-07b.c | 21 ++++++++++++++ 20231019/strings-07c.c | 21 ++++++++++++++ 20231019/strings-07d.c | 21 ++++++++++++++ 20231026/answer.c | 6 ++++ 20231026/answer.h | 1 + 20231026/gtk-01.c | 2 +- 20231026/gtk-02.c | 3 +- 20231026/hello-01.c | 7 +++++ 20231026/hello-02.c | 7 +++++ 20231026/higher-math-01.c | 10 +++++++ 20231026/higher-math-02.c | 10 +++++++ 20231026/higher-math-03.c | 10 +++++++ 20231026/higher-math-04.c | 10 +++++++ 20231026/higher-math-05.c | 10 +++++++ 20231026/hp-20231026.pdf | Bin 199445 -> 199441 bytes 20231026/hp-20231026.tex | 12 ++++---- 20231026/philosophy.c | 8 ++++++ 20231026/string-ops-01.c | 20 +++++++++++++ 20231026/string-ops-02.c | 20 +++++++++++++ 20231026/string-ops-02.s | 48 ++++++++++++++++++++++++++++++++ 20231026/string-ops-03.c | 20 +++++++++++++ 20231026/string-ops-03.s | 57 ++++++++++++++++++++++++++++++++++++++ 20231026/string-ops-04.c | 20 +++++++++++++ 20231026/string-ops-04.s | 48 ++++++++++++++++++++++++++++++++ 20231026/string-ops-05.c | 18 ++++++++++++ 20231026/string-ops-06.c | 18 ++++++++++++ 20231026/string-ops-07.c | 19 +++++++++++++ 20231026/string-ops-08.c | 19 +++++++++++++ 20231026/string-ops-09.c | 20 +++++++++++++ 20231026/string-ops-10.c | 20 +++++++++++++ 20231026/string-ops-11.c | 20 +++++++++++++ 20231026/string-ops-11.s | 55 ++++++++++++++++++++++++++++++++++++ 20231026/string-ops-12.c | 20 +++++++++++++ 20231026/string-ops-12.s | 54 ++++++++++++++++++++++++++++++++++++ 20231026/string-ops-13.c | 20 +++++++++++++ 20231026/string-ops-14.c | 20 +++++++++++++ 20231026/string-ops-15.c | 15 ++++++++++ 20231026/string-ops-16.c | 15 ++++++++++ 20231026/string-ops-17.c | 15 ++++++++++ 20231026/string-ops-18.c | 17 ++++++++++++ 20231026/string-ops-19.c | 17 ++++++++++++ 20231026/string-ops-20.c | 17 ++++++++++++ 20231026/string-ops-21.c | 17 ++++++++++++ 20231026/string-ops-22.c | 17 ++++++++++++ 45 files changed, 838 insertions(+), 8 deletions(-) create mode 100644 20231019/strings-07a.c create mode 100644 20231019/strings-07b.c create mode 100644 20231019/strings-07c.c create mode 100644 20231019/strings-07d.c create mode 100644 20231026/answer.c create mode 100644 20231026/answer.h create mode 100644 20231026/hello-01.c create mode 100644 20231026/hello-02.c create mode 100644 20231026/higher-math-01.c create mode 100644 20231026/higher-math-02.c create mode 100644 20231026/higher-math-03.c create mode 100644 20231026/higher-math-04.c create mode 100644 20231026/higher-math-05.c create mode 100644 20231026/philosophy.c create mode 100644 20231026/string-ops-01.c create mode 100644 20231026/string-ops-02.c create mode 100644 20231026/string-ops-02.s create mode 100644 20231026/string-ops-03.c create mode 100644 20231026/string-ops-03.s create mode 100644 20231026/string-ops-04.c create mode 100644 20231026/string-ops-04.s create mode 100644 20231026/string-ops-05.c create mode 100644 20231026/string-ops-06.c create mode 100644 20231026/string-ops-07.c create mode 100644 20231026/string-ops-08.c create mode 100644 20231026/string-ops-09.c create mode 100644 20231026/string-ops-10.c create mode 100644 20231026/string-ops-11.c create mode 100644 20231026/string-ops-11.s create mode 100644 20231026/string-ops-12.c create mode 100644 20231026/string-ops-12.s create mode 100644 20231026/string-ops-13.c create mode 100644 20231026/string-ops-14.c create mode 100644 20231026/string-ops-15.c create mode 100644 20231026/string-ops-16.c create mode 100644 20231026/string-ops-17.c create mode 100644 20231026/string-ops-18.c create mode 100644 20231026/string-ops-19.c create mode 100644 20231026/string-ops-20.c create mode 100644 20231026/string-ops-21.c create mode 100644 20231026/string-ops-22.c diff --git a/20231019/strings-07a.c b/20231019/strings-07a.c new file mode 100644 index 0000000..3fa3628 --- /dev/null +++ b/20231019/strings-07a.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char hello[] = "Hello, world!\n"; + + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + printf ("%s\n", hello - 7); + printf ("%zd\n", strlen (hello - 7)); + + return 0; + + hello[5] = 0; + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + return 0; +} diff --git a/20231019/strings-07b.c b/20231019/strings-07b.c new file mode 100644 index 0000000..a1fa8d7 --- /dev/null +++ b/20231019/strings-07b.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char hello[] = "Hello, world!\n"; + + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + printf ("%s\n", hello - 1); + printf ("%zd\n", strlen (hello - 1)); + + return 0; + + hello[5] = 0; + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + return 0; +} diff --git a/20231019/strings-07c.c b/20231019/strings-07c.c new file mode 100644 index 0000000..a1fa8d7 --- /dev/null +++ b/20231019/strings-07c.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char hello[] = "Hello, world!\n"; + + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + printf ("%s\n", hello - 1); + printf ("%zd\n", strlen (hello - 1)); + + return 0; + + hello[5] = 0; + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + return 0; +} diff --git a/20231019/strings-07d.c b/20231019/strings-07d.c new file mode 100644 index 0000000..ba7d83c --- /dev/null +++ b/20231019/strings-07d.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char hello[] = "Hello, world!\n"; + + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + printf ("%s\n", hello + 17); + printf ("%zd\n", strlen (hello + 17)); + + return 0; + + hello[5] = 0; + printf ("%s\n", hello); + printf ("%zd\n", strlen (hello)); + + return 0; +} diff --git a/20231026/answer.c b/20231026/answer.c new file mode 100644 index 0000000..65a1dc2 --- /dev/null +++ b/20231026/answer.c @@ -0,0 +1,6 @@ +#include "answer.h" + +int answer (void) +{ + return 23; +} diff --git a/20231026/answer.h b/20231026/answer.h new file mode 100644 index 0000000..b6777e8 --- /dev/null +++ b/20231026/answer.h @@ -0,0 +1 @@ +extern int answer (void); diff --git a/20231026/gtk-01.c b/20231026/gtk-01.c index 6e4cf8a..2cd0d60 100644 --- a/20231026/gtk-01.c +++ b/20231026/gtk-01.c @@ -9,7 +9,7 @@ static void activate (GtkApplication *app, gpointer user_data) int main (int argc, char **argv) { - GtkApplication *app = gtk_application_new ("de.hs-bochum.cvh.hp.hello-gtk", G_APPLICATION_DEFAULT_FLAGS); + GtkApplication *app = gtk_application_new ("de.hs-bochum.cvh.hp.gtk-01", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); int status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); diff --git a/20231026/gtk-02.c b/20231026/gtk-02.c index 507acdf..1ab3c19 100644 --- a/20231026/gtk-02.c +++ b/20231026/gtk-02.c @@ -1,4 +1,5 @@ #include <gtk/gtk.h> +#include <stdio.h> static void hello (GtkWidget *this, gpointer user_data) { @@ -18,7 +19,7 @@ static void activate (GtkApplication *app, gpointer user_data) int main (int argc, char **argv) { - GtkApplication *app = gtk_application_new ("de.hs-bochum.cvh.hp.hello-gtk", G_APPLICATION_DEFAULT_FLAGS); + GtkApplication *app = gtk_application_new ("de.hs-bochum.cvh.hp.gtk-02", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); int status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); diff --git a/20231026/hello-01.c b/20231026/hello-01.c new file mode 100644 index 0000000..b19d80e --- /dev/null +++ b/20231026/hello-01.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +int main (void) +{ + printf ("Hello, world!\n"); + return 0; +} diff --git a/20231026/hello-02.c b/20231026/hello-02.c new file mode 100644 index 0000000..304452b --- /dev/null +++ b/20231026/hello-02.c @@ -0,0 +1,7 @@ +extern int printf (const char *__restrict __format, ...); + +int main (void) +{ + printf ("Hello, world!\n"); + return 0; +} diff --git a/20231026/higher-math-01.c b/20231026/higher-math-01.c new file mode 100644 index 0000000..8781908 --- /dev/null +++ b/20231026/higher-math-01.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define NINE 9 +#define SIX 6 + +int main (void) +{ + printf ("nine times six = %d\n", NINE * SIX); + return 0; +} diff --git a/20231026/higher-math-02.c b/20231026/higher-math-02.c new file mode 100644 index 0000000..04a8ae4 --- /dev/null +++ b/20231026/higher-math-02.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define NINE 1 + 8 +#define SIX 5 + 1 + +int main (void) +{ + printf ("nine times six = %d\n", NINE * SIX); + return 0; +} diff --git a/20231026/higher-math-03.c b/20231026/higher-math-03.c new file mode 100644 index 0000000..1451873 --- /dev/null +++ b/20231026/higher-math-03.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define NINE (1 + 8) +#define SIX (5 + 1) + +int main (void) +{ + printf ("nine times six = %d\n", NINE * SIX); + return 0; +} diff --git a/20231026/higher-math-04.c b/20231026/higher-math-04.c new file mode 100644 index 0000000..e2390dc --- /dev/null +++ b/20231026/higher-math-04.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define NINE (1 + 8) +#define SIX (5 + 1)); + +int main (void) +{ + printf ("nine times six = %d\n", NINE * SIX + return 0; +} diff --git a/20231026/higher-math-05.c b/20231026/higher-math-05.c new file mode 100644 index 0000000..8ce485e --- /dev/null +++ b/20231026/higher-math-05.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define NINE (1 + 8 +#define SIX (5 + 1)); + +int main (void) +{ + printf ("nine times six = %d\n", NINE) * SIX + return 0; +} diff --git a/20231026/hp-20231026.pdf b/20231026/hp-20231026.pdf index ca79ca5a6b4a3df11a0a9db2f0f526ff41738ac1..f77755cdbeaa1b602b45bfd1ce950a4a3bbac722 100644 GIT binary patch delta 15504 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 delta 15509 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 diff --git a/20231026/hp-20231026.tex b/20231026/hp-20231026.tex index 6fb14db..a24cc99 100644 --- a/20231026/hp-20231026.tex +++ b/20231026/hp-20231026.tex @@ -514,7 +514,7 @@ int main (void) { - date today = { 17, 10, 2022 }; + date today = { 26, 10, 2023 }; printf ("%d.%d.%d\n", today.day, today.month, today.year); return 0; } @@ -538,9 +538,9 @@ void set_date (date *d) { - (*d).day = 17; + (*d).day = 26; (*d).month = 10; - (*d).year = 2022; + (*d).year = 2023; }¿ \end{lstlisting} \end{minipage}% @@ -575,9 +575,9 @@ void set_date (date *d) { - d->day = 17; + d->day = 26; d->month = 10; - d->year = 2022; + d->year = 2023; }¿ \end{lstlisting} \end{minipage}% @@ -1050,7 +1050,7 @@ \pause \smallskip \item - Mit \lstinline[style=cmd]{pkg-config --cflags --libs} erfährt man,\\ + Mit \lstinline[style=cmd]{pkg-config --cflags --libs gtk4} erfährt man,\\ welche Optionen und Bibliotheken man an \lstinline[style=cmd]{gcc} übergeben muß\alt<4->{.}{:} \pause diff --git a/20231026/philosophy.c b/20231026/philosophy.c new file mode 100644 index 0000000..e9f508a --- /dev/null +++ b/20231026/philosophy.c @@ -0,0 +1,8 @@ +#include <stdio.h> +#include "answer.h" + +int main (void) +{ + printf ("The answer is %d.\n", answer ()); + return 0; +} diff --git a/20231026/string-ops-01.c b/20231026/string-ops-01.c new file mode 100644 index 0000000..3414254 --- /dev/null +++ b/20231026/string-ops-01.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *anton = "Anton"; + char *zacharias = "Zacharias"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + return 0; + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-02.c b/20231026/string-ops-02.c new file mode 100644 index 0000000..7ee59d5 --- /dev/null +++ b/20231026/string-ops-02.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *anton = "Anton"; + char *zacharias = "Zacharias"; + + printf ("%d\n", anton < zacharias); + printf ("%d\n", zacharias < anton); + printf ("%d\n", anton == anton); + + return 0; + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-02.s b/20231026/string-ops-02.s new file mode 100644 index 0000000..fd7f407 --- /dev/null +++ b/20231026/string-ops-02.s @@ -0,0 +1,48 @@ + .file "string-ops-02.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "Anton" +.LC1: + .string "Zacharias" +.LC2: + .string "%d\n" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + leaq .LC0(%rip), %rdx + leaq .LC1(%rip), %rax + cmpq %rax, %rdx + setb %sil + movzbl %sil, %esi + leaq .LC2(%rip), %rdi + movl $0, %eax + call printf@PLT + leaq .LC1(%rip), %rdx + leaq .LC0(%rip), %rax + cmpq %rax, %rdx + setb %sil + movzbl %sil, %esi + leaq .LC2(%rip), %rbx + movq %rbx, %rdi + movl $0, %eax + call printf@PLT + movl $1, %esi + movq %rbx, %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/20231026/string-ops-03.c b/20231026/string-ops-03.c new file mode 100644 index 0000000..dbae824 --- /dev/null +++ b/20231026/string-ops-03.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacharias"; + char *anton = "Anton"; + + printf ("%d\n", anton < zacharias); + printf ("%d\n", zacharias < anton); + printf ("%d\n", anton == anton); + + return 0; + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-03.s b/20231026/string-ops-03.s new file mode 100644 index 0000000..32c8f59 --- /dev/null +++ b/20231026/string-ops-03.s @@ -0,0 +1,57 @@ + .file "string-ops-03.c" + .text + .section .rodata +.LC0: + .string "Zacharias" +.LC1: + .string "Anton" +.LC2: + .string "%d\n" + .text + .globl main + .type main, @function +main: +.LFB0: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + movq %rsp, %rbp + .cfi_def_cfa_register 6 + addq $-128, %rsp + leaq .LC0(%rip), %rax + movq %rax, -8(%rbp) + leaq .LC1(%rip), %rax + movq %rax, -16(%rbp) + movq -16(%rbp), %rax + cmpq -8(%rbp), %rax + setb %al + movzbl %al, %eax + movl %eax, %esi + leaq .LC2(%rip), %rax + movq %rax, %rdi + movl $0, %eax + call printf@PLT + movq -8(%rbp), %rax + cmpq -16(%rbp), %rax + setb %al + movzbl %al, %eax + movl %eax, %esi + leaq .LC2(%rip), %rax + movq %rax, %rdi + movl $0, %eax + call printf@PLT + movl $1, %esi + leaq .LC2(%rip), %rax + movq %rax, %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + leave + .cfi_def_cfa 7, 8 + ret + .cfi_endproc +.LFE0: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/20231026/string-ops-04.c b/20231026/string-ops-04.c new file mode 100644 index 0000000..3f0c0f7 --- /dev/null +++ b/20231026/string-ops-04.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + + printf ("%d\n", anton < zacharias); + printf ("%d\n", zacharias < anton); + printf ("%d\n", anton == anton); + + return 0; + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-04.s b/20231026/string-ops-04.s new file mode 100644 index 0000000..426782c --- /dev/null +++ b/20231026/string-ops-04.s @@ -0,0 +1,48 @@ + .file "string-ops-04.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "Anton" +.LC1: + .string "Zacha" +.LC2: + .string "%d\n" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + leaq .LC0(%rip), %rdx + leaq .LC1(%rip), %rax + cmpq %rax, %rdx + setb %sil + movzbl %sil, %esi + leaq .LC2(%rip), %rdi + movl $0, %eax + call printf@PLT + leaq .LC1(%rip), %rdx + leaq .LC0(%rip), %rax + cmpq %rax, %rdx + setb %sil + movzbl %sil, %esi + leaq .LC2(%rip), %rbx + movq %rbx, %rdi + movl $0, %eax + call printf@PLT + movl $1, %esi + movq %rbx, %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/20231026/string-ops-05.c b/20231026/string-ops-05.c new file mode 100644 index 0000000..e273004 --- /dev/null +++ b/20231026/string-ops-05.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[100] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-06.c b/20231026/string-ops-06.c new file mode 100644 index 0000000..fb88b55 --- /dev/null +++ b/20231026/string-ops-06.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + + return 0; +} diff --git a/20231026/string-ops-07.c b/20231026/string-ops-07.c new file mode 100644 index 0000000..b70d6cc --- /dev/null +++ b/20231026/string-ops-07.c @@ -0,0 +1,19 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, anton); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-08.c b/20231026/string-ops-08.c new file mode 100644 index 0000000..7eef447 --- /dev/null +++ b/20231026/string-ops-08.c @@ -0,0 +1,19 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, "Antonius, genannt Toni oder Anton"); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-09.c b/20231026/string-ops-09.c new file mode 100644 index 0000000..6137896 --- /dev/null +++ b/20231026/string-ops-09.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Antonius, genannt Toni oder Anton"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, toni); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-10.c b/20231026/string-ops-10.c new file mode 100644 index 0000000..c9b792e --- /dev/null +++ b/20231026/string-ops-10.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Antonius!!"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, toni); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-11.c b/20231026/string-ops-11.c new file mode 100644 index 0000000..d62f391 --- /dev/null +++ b/20231026/string-ops-11.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Antonius!"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, toni); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-11.s b/20231026/string-ops-11.s new file mode 100644 index 0000000..c61b7be --- /dev/null +++ b/20231026/string-ops-11.s @@ -0,0 +1,55 @@ + .file "string-ops-11.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "%d\n" +.LC1: + .string "Anton" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + subq $16, %rsp + .cfi_def_cfa_offset 32 + movl $-1, %esi + leaq .LC0(%rip), %rbx + movq %rbx, %rdi + movl $0, %eax + call printf@PLT + movl $1, %esi ; #include <stdio.h> + movq %rbx, %rdi ; #include <string.h> + movl $0, %eax ; + call printf@PLT ; int main (void) + movl $0, %esi ; { + movq %rbx, %rdi ; char *zacharias = "Zacha"; + movl $0, %eax ; char *anton = "Anton"; + call printf@PLT ; char *toni = "Antonius!"; + movl $1700951368, 9(%rsp) ; + movl $2126437, 12(%rsp) ; printf ("%d\n", strcmp (anton, zacharias)); + leaq 9(%rsp), %rbx ; printf ("%d\n", strcmp (zacharias, anton)); + movq %rbx, %rdi ; printf ("%d\n", strcmp (anton, anton)); + call strlen@PLT ; + addq %rbx, %rax ; char buffer[] = "Huber "; + movabsq $8319671809674079809, %rdx ; strcat (buffer, toni); + movq %rdx, (%rax) ; printf ("%s\n", buffer); + movw $33, 8(%rax) ; printf ("%s\n", anton); + movq %rbx, %rdi ; + call puts@PLT ; return 0; + leaq .LC1(%rip), %rdi ; } + call puts@PLT + movl $0, %eax + addq $16, %rsp + .cfi_def_cfa_offset 16 + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/20231026/string-ops-12.c b/20231026/string-ops-12.c new file mode 100644 index 0000000..bed94d6 --- /dev/null +++ b/20231026/string-ops-12.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Toni"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[] = "Huber "; + strcat (buffer, toni); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-12.s b/20231026/string-ops-12.s new file mode 100644 index 0000000..f382c41 --- /dev/null +++ b/20231026/string-ops-12.s @@ -0,0 +1,54 @@ + .file "string-ops-12.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "%d\n" +.LC1: + .string "Anton" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + subq $16, %rsp ; #include <stdio.h> + .cfi_def_cfa_offset 32 ; #include <string.h> + movl $-1, %esi ; + leaq .LC0(%rip), %rbx ; int main (void) + movq %rbx, %rdi ; { + movl $0, %eax ; char *zacharias = "Zacha"; + call printf@PLT ; char *anton = "Anton"; + movl $1, %esi ; char *toni = "Toni"; + movq %rbx, %rdi ; + movl $0, %eax ; printf ("%d\n", strcmp (anton, zacharias)); + call printf@PLT ; printf ("%d\n", strcmp (zacharias, anton)); + movl $0, %esi ; printf ("%d\n", strcmp (anton, anton)); + movq %rbx, %rdi ; + movl $0, %eax ; char buffer[] = "Huber "; + call printf@PLT ; strcat (buffer, toni); + movl $1700951368, 9(%rsp) ; printf ("%s\n", buffer); + movl $2126437, 12(%rsp) ; printf ("%s\n", anton); + leaq 9(%rsp), %rbx ; + movq %rbx, %rdi ; return 0; + call strlen@PLT ; } + addq %rbx, %rax + movl $1768845140, (%rax) + movb $0, 4(%rax) + movq %rbx, %rdi + call puts@PLT + leaq .LC1(%rip), %rdi + call puts@PLT + movl $0, %eax + addq $16, %rsp + .cfi_def_cfa_offset 16 + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/20231026/string-ops-13.c b/20231026/string-ops-13.c new file mode 100644 index 0000000..150e9f4 --- /dev/null +++ b/20231026/string-ops-13.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Antonius, genannt Toni"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[13] = "Huber "; + strncat (buffer, toni, 13); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-14.c b/20231026/string-ops-14.c new file mode 100644 index 0000000..e290ca8 --- /dev/null +++ b/20231026/string-ops-14.c @@ -0,0 +1,20 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char *zacharias = "Zacha"; + char *anton = "Anton"; + char *toni = "Antonius, genannt Toni"; + + printf ("%d\n", strcmp (anton, zacharias)); + printf ("%d\n", strcmp (zacharias, anton)); + printf ("%d\n", strcmp (anton, anton)); + + char buffer[14] = "Huber "; + strncat (buffer, toni, 13); + printf ("%s\n", buffer); + printf ("%s\n", anton); + + return 0; +} diff --git a/20231026/string-ops-15.c b/20231026/string-ops-15.c new file mode 100644 index 0000000..731a6b1 --- /dev/null +++ b/20231026/string-ops-15.c @@ -0,0 +1,15 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Antwort"); + printf ("%s\n", answer); + printf ("found at: %zd\n", answer - buffer); + + return 0; +} diff --git a/20231026/string-ops-16.c b/20231026/string-ops-16.c new file mode 100644 index 0000000..1db6aa5 --- /dev/null +++ b/20231026/string-ops-16.c @@ -0,0 +1,15 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + printf ("%s\n", answer); + printf ("found at: %zd\n", answer - buffer); + + return 0; +} diff --git a/20231026/string-ops-17.c b/20231026/string-ops-17.c new file mode 100644 index 0000000..afa66c6 --- /dev/null +++ b/20231026/string-ops-17.c @@ -0,0 +1,15 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + printf ("found at: %zd\n", answer - buffer); + printf ("%s\n", answer); + + return 0; +} diff --git a/20231026/string-ops-18.c b/20231026/string-ops-18.c new file mode 100644 index 0000000..27ecc2a --- /dev/null +++ b/20231026/string-ops-18.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + printf ("answer = %zd\n", answer); + printf ("buffer = %zd\n", buffer); + printf ("found at: %zd\n", answer - buffer); + printf ("%s\n", answer); + + return 0; +} diff --git a/20231026/string-ops-19.c b/20231026/string-ops-19.c new file mode 100644 index 0000000..b9391e1 --- /dev/null +++ b/20231026/string-ops-19.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[100] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + if (answer) + printf ("found at: %zd\n", answer - buffer); + else + printf ("not found\n"); + + return 0; +} diff --git a/20231026/string-ops-20.c b/20231026/string-ops-20.c new file mode 100644 index 0000000..6caf324 --- /dev/null +++ b/20231026/string-ops-20.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[10] = ""; + sprintf (buffer, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + if (answer) + printf ("found at: %zd\n", answer - buffer); + else + printf ("not found\n"); + + return 0; +} diff --git a/20231026/string-ops-21.c b/20231026/string-ops-21.c new file mode 100644 index 0000000..9218527 --- /dev/null +++ b/20231026/string-ops-21.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[10] = ""; + snprintf (buffer, 10, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + if (answer) + printf ("found at: %zd\n", answer - buffer); + else + printf ("not found\n"); + + return 0; +} diff --git a/20231026/string-ops-22.c b/20231026/string-ops-22.c new file mode 100644 index 0000000..a487160 --- /dev/null +++ b/20231026/string-ops-22.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <string.h> + +int main (void) +{ + char buffer[11] = ""; + snprintf (buffer, 10, "Die Antwort lautet: %d", 42); + printf ("%s\n", buffer); + + char *answer = strstr (buffer, "Bntwort"); + if (answer) + printf ("found at: %zd\n", answer - buffer); + else + printf ("not found\n"); + + return 0; +} -- GitLab