online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
/****************************************************************************** Welcome to GDB Online. GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, C#, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS Code, Compile, Run and Debug online from anywhere in world. Gabriel Staples 21 Mar. 2019 *******************************************************************************/ #include <stdio.h> #include <string.h> ////////////////GOOD! WORKS!////////////////// /* Case-insensitive string compare (strncmp case-insensitive) - Identical to strncmp except case-insensitive. See: http://www.cplusplus.com/reference/cstring/strncmp/ - Aided/inspired, in part, by: https://stackoverflow.com/a/5820991/4561887 str1 C string 1 to be compared str2 C string 2 to be compared num max number of chars to compare return: (essentially identical to strncmp) -9999 invalid arguments (one or both of the input strings is a NULL pointer) <0 the first character that does not match has a lower value in str1 than in str2 0 the contents of both strings are equal >0 the first character that does not match has a greater value in str1 than in str2 */ static inline int strncmpci(const char * str1, const char * str2, size_t num) { int ret_code = -9999; size_t chars_compared = 0; // Check for NULL pointers if (!str1 || !str2) { goto done; } // Continue doing case-insensitive comparisons, one-character-at-a-time, of str1 to str2, // as long as at least one of the strings still has more characters in it, and we have // not yet compared num chars. while ((*str1 || *str2) && (chars_compared < num)) { ret_code = tolower((int)(*str1)) - tolower((int)(*str2)); if (ret_code != 0) { // The 2 chars just compared don't match break; } chars_compared++; str1++; str2++; } done: return ret_code; } // Added 26 July 2020 // Copied directly from: // https://stackoverflow.com/questions/5820810/case-insensitive-string-comp-in-c/5820991#5820991 int strcicmp(char const *a, char const *b) { for (;; a++, b++) { int d = tolower((unsigned char)*a) - tolower((unsigned char)*b); if (d != 0 || !*a) return d; } } int main() { printf("Hello World\n\n"); const char * str1; const char * str2; size_t n; str1 = "hey"; str2 = "HEY"; n = 3; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "heY"; str2 = "HeY"; n = 3; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "hey"; str2 = "HEdY"; n = 3; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "heY"; str2 = "HeYd"; n = 3; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "heY"; str2 = "HeYd"; n = 6; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "hey"; str2 = "hey"; n = 6; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "hey"; str2 = "heyd"; n = 6; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); str1 = "hey"; str2 = "heyd"; n = 3; printf("strncmpci(%s, %s, %u) = %i\n", str1, str2, n, strncmpci(str1, str2, n)); printf("strcicmp(%s, %s) = %i\n", str1, str2, strcicmp(str1, str2)); printf("strncmp(%s, %s, %u) = %i\n", str1, str2, n, strncmp(str1, str2, n)); printf("\n"); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue