this post was submitted on 20 Jun 2023
16 points (100.0% liked)

C Programming Language

981 readers
1 users here now

Welcome to the C community!

C is quirky, flawed, and an enormous success.
... When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd.
... The only way to learn a new programming language is by writing programs in it.

ยฉ Dennis Ritchie

๐ŸŒ https://en.cppreference.com/w/c

founded 1 year ago
MODERATORS
16
submitted 1 year ago* (last edited 1 year ago) by Hammerheart to c/c_lang
 

I was looking over the first kata i did on codewars, and I thought it would be fun to try and solve it in C. The object was to return a string based on a boolean input. it took a lot of trial and error, googling, chat gippity, but I eventually got it to work. I am still focused on learning python, but I've had it in my mind that I should branch out once I've reached a competence plateau in python. I'm nowhere near that plateau yet, but this seemed simple enough to warrant the necessary investment in time to accomplish it.

// C:
#include <stdbool.h>
// FIRST EVER C PROGRAM
const char *bool_to_word (bool value){
// you can return a static/global string or a string literal
  if (value == 1){
  return "Yes";
    }
  else{
    return "No";
  }
}

I realize this is pretty trivial, but still, it's a milestone for me and I wanted to do my part to get the ball rolling on this community.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 4 points 1 year ago

For these kinds of expressions, I really like to use the ternary operator. I find that more readable. An if statement with a condition and two simple possible return values like your code can be written as

return (value == 1) ? "Yes" : "No";

The return keyword is not part of the ternary operator. The definition is "<condition> ? <value if true> : <value if false>".

As the operator is an expression, the result of it can be assigned to a variable of course. But in your code example there is no need for a local variable to hold the result so it can just be returned.

If the expressions for the condition, or true or false results get too complicated I'll switch to if/else for readability (the question mark or the colon might get harder to spot).