Initial commit

This commit is contained in:
2021-10-01 20:24:05 +02:00
commit 860c025165
194 changed files with 4846 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
#include <stdio.h>
void funk1(void);
int main(void)
{
int i = 555;
int x = 123;
printf("i utanför for: %d\n", i);
for (int i = 0; i <= 2; i++)
{
printf("i inuti for: %d\n", i);
printf("x går att nå ifrån loopen och är: %d\n", x);
}
printf("i utanför och efter for: %d\n", i);
funk1();
printf("i i main är fortfarande: %d\n", i);
return 0;
}
void funk1(void)
{
int i = 999;
printf("i inuti funk1: %d\n", i);
}

View File

@@ -0,0 +1,20 @@
#include <stdio.h>
int main(void)
{
int i = 10;
for (int i = 0; i <= 3; i++)
{
printf("i inuti första for: %d\n", i);
}
printf("i utanför for: %d\n", i);
for ( ; i<= 13; i++)
{
printf("i inuti andra for: %d\n", i);
}
return 0;
}

20
kapitel9/calloc-ex1.c Normal file
View File

@@ -0,0 +1,20 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *a, *b;
a = calloc(30, sizeof(char));
strcat(a, "hej hej");
printf("%s\n", a);
free(a);
b = calloc(30, sizeof(char));
strcat(b, "hej igen");
printf("%s\n", b);
free(b);
return 0;
}

30
kapitel9/forsta-tecknet.c Normal file
View File

@@ -0,0 +1,30 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 20
int main(void)
{
char *a;
int i;
a = calloc(SIZE, sizeof(char));
strcpy(a, "Hej alla glada");
printf("Strängen: %s\n", a);
*a = '\0'; /* "Initialisera" igen */
printf("Strängen efter ny initialisering: %s\n", a);
printf("\nTecken för tecken efter ny initialisering:\n");
for (i=0; i<SIZE; i++)
{
if (*a == '\0')
printf("tecken: NULL\n");
else
printf("tecken: %c\n", *a);
a++;
}
/* Vi måste flytta tillbaks pekaren innan vi frigör */
free(a-SIZE);
return 0;
}

View File

@@ -0,0 +1,9 @@
#include <stdio.h>
extern int x;
int main(void)
{
printf("x = %d\n", x);
return 0;
}

View File

@@ -0,0 +1,2 @@
int x = 5;
static int y = 10;

19
kapitel9/global-ex1.c Normal file
View File

@@ -0,0 +1,19 @@
#include <stdio.h>
void funk(void);
int x = 5;
int main(void)
{
printf("x = %d\n", x);
printf("++x = %d\n", ++x);
funk();
printf("++x = %d\n", ++x);
return 0;
}
void funk(void)
{
printf("++x = %d\n", ++x);
}

10
kapitel9/global-ex2.c Normal file
View File

@@ -0,0 +1,10 @@
#include <stdio.h>
int x = 999;
int main(void)
{
int x = 100;
printf ("x = %d\n", x);
return 0;
}

View File

@@ -0,0 +1,15 @@
#include <stdio.h>
extern int x;
extern int y;
int main(void)
{
/* Kommer inte att fungera eftersom
y är static i filen
fungerande-scope-fil2.c
*/
printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}

View File

@@ -0,0 +1,22 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *a, *b;
a = malloc(300);
*a = '\0';
strcat(a, "hej hej");
printf("%s\n", a);
free(a);
b = malloc(30);
*b = '\0';
strcat(b, "hej igen");
printf("%s\n", b);
free(b);
return 0;
}

15
kapitel9/memset-ex1.c Normal file
View File

@@ -0,0 +1,15 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *a;
a = malloc(30*sizeof(char));
memset(a, '\0', 29);
strcat(a, "Hej svejs!");
printf("%s\n", a);
memset(a, 'A', 15);
printf("%s\n", a);
return 0;
}

View File

@@ -0,0 +1,24 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *meningen;
/* Allokera minnet */
meningen = malloc(sizeof(char)*24);
*meningen = '\0'; /* Initialisera strängen ("noll-terminera") */
strcpy(meningen, "meningen med livet är");
printf("%s\n", meningen);
/* Utöka minnet till 'meningen' */
meningen = realloc(meningen, sizeof(char)*40);
strcat(meningen, " att programmera");
printf("%s\n", meningen);
/* Frigör minnet */
free(meningen);
return 0;
}

18
kapitel9/static-ex1.c Normal file
View File

@@ -0,0 +1,18 @@
#include <stdio.h>
void funk(void);
int main(void)
{
funk();
funk();
funk();
return 0;
}
void funk(void)
{
int j = 0;
j++;
printf("%d\n", j);
}

18
kapitel9/static-ex2.c Normal file
View File

@@ -0,0 +1,18 @@
#include <stdio.h>
void funk(void);
int main(void)
{
funk();
funk();
funk();
return 0;
}
void funk(void)
{
static int j = 0;
j++;
printf("%d\n", j);
}

15
kapitel9/strncpy-ex1.c Normal file
View File

@@ -0,0 +1,15 @@
#include <stdio.h>
#include <string.h>
int main(void)
{
char stor[20] = "Hej Kalle & Lisa!";
char liten[10] = "XXXXXXXXX";
strncpy(liten, stor, sizeof(liten)-1);
printf("stor = %s\n", stor);
printf("liten = %s\n", liten);
return 0;
}

28
kapitel9/testar-array.c Normal file
View File

@@ -0,0 +1,28 @@
#include <stdio.h>
int main(void)
{
int i;
char a[5] = "B";
char b[5] = { 0 };
printf("char a:\n");
for (i = 0; i<5; i++)
{
if (a[i] == '\0')
printf("tecken: NULL\n");
else
printf("tecken: %c\n", a[i]);
}
printf("\nchar b:\n");
for (i = 0; i<5; i++)
{
if (b[i] == '\0')
printf("tecken: NULL\n");
else
printf("tecken: %c\n", b[i]);
}
return 0;
}

View File

@@ -0,0 +1,20 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *a, *b;
a = malloc(300);
strcat(a, "hej hej");
printf("%s\n", a);
free(a);
b = malloc(30);
strcat(b, "hej igen");
printf("%s\n", b);
free(b);
return 0;
}