Sha256: 58bbc31aa8a54ec2b07a64435fd1a267734c9553d1b063c9b60b7df583505d4a

Contents?: true

Size: 1.68 KB

Versions: 264

Compression:

Stored size: 1.68 KB

Contents

#include "beer_song.h"
#include <stdio.h>
#include <string.h>

static unsigned int getVerse(char *buffer, unsigned int verseNumber)
{
   unsigned int bytesWritten = 0;

   if (verseNumber == 0) {
      bytesWritten =
          sprintf(buffer,
                  "No more bottles of beer on the wall, no more bottles of beer.\n"
                  "Go to the store and buy some more, 99 bottles of beer on the wall.\n");
   } else if (verseNumber == 1) {
      bytesWritten =
          sprintf(buffer,
                  "1 bottle of beer on the wall, 1 bottle of beer.\n"
                  "Take it down and pass it around, no more bottles of beer on the wall.\n");
   } else if (verseNumber == 2) {
      bytesWritten =
          sprintf(buffer,
                  "2 bottles of beer on the wall, 2 bottles of beer.\n"
                  "Take one down and pass it around, 1 bottle of beer on the wall.\n");
   } else if (verseNumber <= 99) {
      bytesWritten =
          sprintf(buffer,
                  "%d bottles of beer on the wall, %d bottles of beer.\n"
                  "Take one down and pass it around, %d bottles of beer on the wall.\n",
                  verseNumber, verseNumber, verseNumber - 1);
   }

   return bytesWritten;
}

void verse(char *buffer, unsigned int verseNumber)
{
   (void)getVerse(buffer, verseNumber);
}

void sing(char *buffer, unsigned int startingVerseNumber,
          unsigned int endingVerseNumber)
{
   char *currentPosition = buffer;

   for (unsigned int i = startingVerseNumber + 1; i > endingVerseNumber; i--) {
      currentPosition += getVerse(currentPosition, i - 1);
      strcpy(currentPosition, "\n");
      currentPosition++;
   }

   strcpy(currentPosition - 1, "\0");
}

Version data entries

264 entries across 264 versions & 1 rubygems

Version Path
trackler-2.2.1.46 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.45 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.44 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.43 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.42 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.41 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.40 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.39 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.38 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.37 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.36 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.35 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.34 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.33 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.32 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.31 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.30 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.29 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.28 tracks/c/exercises/beer-song/src/example.c
trackler-2.2.1.27 tracks/c/exercises/beer-song/src/example.c