#include // for access to size_t and the "official" strlen #include // for access to printf size_t strlen1(const char *s) { size_t ans = 0; while(s[ans]) ans+=1; return ans; } size_t strlen2(const char *s) { size_t ans = 0; const char *p = s; loop: if (!*p) goto end; ans += 1; p += 1; goto loop; end: return ans; } size_t strlen3(const char *s) { size_t ans = -1; loop: ans += 1; if (s[ans]) goto loop; return ans; } int main(int argc, char *argv[]) { const char *s = "This is a ☺ test"; printf("strlen(\"%s\") = %zd\n", s, strlen(s)); printf("strlen1(\"%s\") = %zd\n", s, strlen1(s)); printf("strlen2(\"%s\") = %zd\n", s, strlen2(s)); printf("strlen3(\"%s\") = %zd\n", s, strlen3(s)); return 0; }