Skip to content

Instantly share code, notes, and snippets.

View EmilHernvall's full-sized avatar

Emil Hernvall EmilHernvall

View GitHub Profile
@EmilHernvall
EmilHernvall / genprimes2.c
Created May 3, 2011 17:29
Translation of someone elses code for a more sophisticated prime sieve
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char** argv)
{
if (argc != 2) {
printf("usage: genprimes2 num\n");
return 0;
}
@EmilHernvall
EmilHernvall / genprimes.c
Created May 3, 2011 17:29
Simple prime sieve
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
if (argc != 2) {
printf("usage: genprimes num\n");
return 0;
}
@EmilHernvall
EmilHernvall / generatewav.c
Created May 3, 2011 17:28
Experiment with generating sound in wave-format
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct GlobalFormat {
unsigned int id;
unsigned int size;
unsigned int type;
};
@EmilHernvall
EmilHernvall / explode.c
Created May 3, 2011 17:27
A somewhat misguided c-implementation of the common split()-function present in most languages
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int explode(char*** ret, char* instr, char* delim)
{
char* str = strdup(instr);
char** arr = (char**)malloc(sizeof(char*) * (strlen(instr)+1));
int count = 0;
@EmilHernvall
EmilHernvall / expand.c
Created May 3, 2011 17:26
Experiment with interpolating strings
#include <stdio.h>
#include <stdlib.h>
int expand(char *target, int size, char *format, char **params, int count)
{
int i, placeholders = 0;
for (i = 0; i < strlen(format); i++) {
if (format[i] == '?') {
placeholders++;
}
@EmilHernvall
EmilHernvall / digitsum.c
Created May 3, 2011 17:24
Simple mathematical approach for summing the digits in a number
#include <stdio.h>
#include <math.h>
/*
The algorithm is:
d_i = (c mod 10^(i+1)) / 10^i
S = sum_{i=0}^{floor(log_10(c))+1} d_i = sum_{i=0}^{floor(log_10(c))+1} (c mod 10^(i+1)) / 10^i
Where c is the number in question, d_i is the digit at position i counted from the least significant digit
and S is the sum of the digits in the number.
@EmilHernvall
EmilHernvall / analyzewav.c
Created May 3, 2011 17:22
Simple experiment with parsing wav-files
#include <stdio.h>
#include <stdlib.h>
#define FormatID 'fmt ' /* chunkID for Format Chunk. NOTE: There is a space at the end of this ID. */
struct GlobalFormat {
unsigned int id;
unsigned int size;
unsigned int type;
};
@EmilHernvall
EmilHernvall / wordcount.java
Created May 3, 2011 17:15
Find the most popular words in a file - Java version
import java.io.*;
import java.util.*;
public class wordcount
{
public static class Word implements Comparable<Word>
{
String word;
int count;
@EmilHernvall
EmilHernvall / wordcount2.c
Created May 3, 2011 17:13
Find the most popular words in a file - Hashtable based version
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct word_ {
char *str;
int c;
struct word_ *next;
} word;
@EmilHernvall
EmilHernvall / wordcount.c
Created May 3, 2011 17:13
Find the most popular words in a file - Linked list and merge sort based version
// this has hacky support for swedish characters in utf8.
// i do not recommend this solution for any serious purposes. :)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
// convert a twobyte utf8 character into a single integer
#define MB(str) (((str[0] & 0xFF) << 8) | (str[1] & 0xFF))