2D Run-and-gun shooter inspired by One Man's Doomsday, Counter-Strike, and Metal Slug.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

58 rader
1.4 KiB

  1. #include "IZ_string.h"
  2. errno_t IZ_memcpy(void* const dest, const rsize_t dest_size, const void* const source, const rsize_t source_size) {
  3. #if defined IZ_WINDOWS
  4. return memcpy_s(dest, dest_size, source, source_size);
  5. #else
  6. memcpy(dest, source, dest_size);
  7. return 0;
  8. #endif
  9. }
  10. errno_t IZ_strcat(char* dest, rsize_t source_size, const char* source) {
  11. #if defined IZ_WINDOWS
  12. return strcat_s(dest, source_size, source);
  13. #else
  14. strcat(dest, source);
  15. return 0;
  16. #endif
  17. }
  18. errno_t IZ_strlwr(char* dest, const char* str, rsize_t str_size) {
  19. #if defined IZ_WINDOWS
  20. errno_t copy_result = memcpy_s(dest, str_size, str, str_size);
  21. if (copy_result) {
  22. return copy_result;
  23. }
  24. return _strlwr_s(dest, str_size);
  25. #else
  26. memcpy(dest, str, str_size - 1);
  27. for (unsigned int i = 0; i < str_size; i += 1) {
  28. if ('A' <= dest[i] && dest[i] <= 'Z') {
  29. dest[i] += 0x20;
  30. }
  31. }
  32. return 0;
  33. #endif
  34. }
  35. void* IZ_memset(void* dest, int value, rsize_t dest_size) {
  36. return memset(dest, value, dest_size);
  37. }
  38. const char* IZ_contains(const char* haystack, rsize_t haystack_size, const char* needle, rsize_t needle_size) {
  39. int i;
  40. for (i = 0; i < haystack_size; i += 1) {
  41. int j;
  42. for (j = 0; j <= needle_size; j += 1) {
  43. if ((haystack[j] == ' ' || haystack[j] == '\0' || j == needle_size) && (haystack[i + j] == ' ' || haystack[i + j] == '\0')) {
  44. return haystack + i;
  45. }
  46. if (haystack[i + j] != needle[j]) {
  47. break;
  48. }
  49. }
  50. }
  51. return NULL;
  52. }