Sha256: bd1cc4ac4cacb5a85a83ead3a2c2136046fcab2f6c2fbba939b44747fc08cfaa

Contents?: true

Size: 912 Bytes

Versions: 73

Compression:

Stored size: 912 Bytes

Contents

#include <string.h>
#include <stdbool.h>
#include <stdio.h>

char *hey_bob(char *greeting)
{
   bool all_blank = true;
   bool all_shouty = true;
   bool any_letters = false;
   char final_char = '.';
   int i = 0;
   char ch = greeting[i];

   while (ch != 0) {
      if (all_blank)
         all_blank = ch == ' ' || (ch >= '\t' && ch <= '\r');

      if (all_shouty)
         all_shouty = !(ch >= 'a' && ch <= 'z');

      if (!any_letters)
         any_letters = (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');

      if (ch != ' ')
         final_char = ch;

      i++;
      ch = greeting[i];
   }

   if (all_blank)
      return "Fine. Be that way!";

   if (all_shouty && any_letters && final_char == '?')
      return "Calm down, I know what I'm doing!";

   if (any_letters && all_shouty)
      return "Whoa, chill out!";

   if (final_char == '?')
      return "Sure.";

   return "Whatever.";
}

Version data entries

73 entries across 73 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.179 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.178 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.177 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.176 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.175 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.174 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.173 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.172 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.171 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.170 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.169 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.167 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.166 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.165 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.164 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.163 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.162 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.161 tracks/c/exercises/bob/src/example.c
trackler-2.2.1.160 tracks/c/exercises/bob/src/example.c