diff --git a/lab21/lab21/main.c b/lab21/lab21/main.c index 22adae8..d89ea2d 100644 --- a/lab21/lab21/main.c +++ b/lab21/lab21/main.c @@ -1,159 +1,148 @@ -#include -#include -#include -#include - -void task1() { - printf("task1 : "); - char ch; - scanf_s(" %c", &ch, 1); - for (int i = ch; i <= ch + 19; i++) { - printf("'%c' (%#x)(%d)\n", i, i, i); - } - printf("\n\n"); -} - -void task2() { - printf("task2 : "); - char ch; - scanf_s(" %c", &ch, 1); - for (int i = ch; i >= ch - 29; i--) { - printf("'%c' (%#x)(%d)\n", i, i, i); - } - printf("\n\n"); -} - -void task3() { - char str[81]; - printf("task3 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - int count = 0; - for (int i = 0; i < strlen(str); i++) { - if (str[i] == ' ') count++; - } - printf(" %d ", count); -} - -void task4() { - char str[81]; - printf("task4 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - int count = 0; - for (int i = 0; i < strlen(str); i++) { - if (str[i] == ' ') str[i] = '#'; - } - printf(" : \"%s\"\n", str); -} - -void task5_1() { - char str[81]; - printf("task5_1 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - int count = 0; - for (int i = 0; i < strlen(str); i++) { - if (isdigit(str[i])) str[i] = '$'; - } - printf(" : \"%s\"\n", str); -} - -char isdigitMY(char ch) { - if (ch >= '0' && ch <= '9') { - return 1; - } - else { - return 0; - } -} - -void task5_2() { - char str[81]; - printf("task5_2 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - int count = 0; - for (int i = 0; i < strlen(str); i++) { - if (isdigitMY(str[i])) str[i] = '$'; - } - printf(" : \"%s\"\n", str); -} - -void task6_1() { - char str[81]; - printf("task6_1 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - for (int i = 0; i < strlen(str); i++) { - str[i] = toupper(str[i]); - } - - printf(" : \"%s\"\n", str); -} - -char toupperMY(char ch) { - if (ch >= 'a' && ch <= 'z') { - return 'A' + (ch - 'a'); - } - if (ch >= '' && ch <= '') { - return '' + (ch - ''); - } - if (ch == '') { - return ''; - } - return ch; -} - -void task6_2() { - char str[81]; - printf("task6_2 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - for (int i = 0; i < strlen(str); i++) { - str[i] = toupperMY(str[i]); - } - - printf(" : \"%s\"\n", str); -} - -void task9_9() { - char str[81]; - printf("task9_9 : "); - fgets(str, 81, stdin); - printf(" : \"%s\"\n", str); - - for (int i = 0; i < strlen(str); i++) { - if ( - str[i] == '!' || str[i] == '?' || str[i] == '.' || - str[i] == ',' || str[i] == ':' || str[i] == ';' || - str[i] == '\"' || str[i] == '\'' - ) { str[i] = '_'; } - } - - printf(" : \"%s\"\n", str); -} - -int main() { - SetConsoleCP(1251); - SetConsoleOutputCP(1251); - setlocale(LC_CTYPE, ""); - - //task1(); - //task2(); - //task3(); - //task4(); - //task5_1(); - //task5_2(); - //task6_1(); - //task6_2(); - //task9_9(); - - return 0; +#include +#include +#include +#include +#include "../../string_my/string_my.h" + + +void task1() { + printf("task1 : "); + char ch; + scanf_s(" %c", &ch, 1); + for (int i = ch; i <= ch + 19; i++) { + printf("'%c' (%#x)(%d)\n", i, i, i); + } + printf("\n\n"); +} + +void task2() { + printf("task2 : "); + char ch; + scanf_s(" %c", &ch, 1); + for (int i = ch; i >= ch - 29; i--) { + printf("'%c' (%#x)(%d)\n", i, i, i); + } + printf("\n\n"); +} + +void task3() { + char str[81]; + printf("task3 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + int count = 0; + for (int i = 0; i < strlen(str); i++) { + if (str[i] == ' ') count++; + } + printf(" %d ", count); +} + +void task4() { + char str[81]; + printf("task4 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + int count = 0; + for (int i = 0; i < strlen(str); i++) { + if (str[i] == ' ') str[i] = '#'; + } + printf(" : \"%s\"\n", str); +} + +void task5_1() { + char str[81]; + printf("task5_1 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + int count = 0; + for (int i = 0; i < strlen(str); i++) { + if (isdigit(str[i])) str[i] = '$'; + } + printf(" : \"%s\"\n", str); +} + +char isdigitMY(char ch) { + if (ch >= '0' && ch <= '9') { + return 1; + } + else { + return 0; + } +} + +void task5_2() { + char str[81]; + printf("task5_2 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + int count = 0; + for (int i = 0; i < strlen(str); i++) { + if (isdigitMY(str[i])) str[i] = '$'; + } + printf(" : \"%s\"\n", str); +} + +void task6_1() { + char str[81]; + printf("task6_1 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + for (int i = 0; i < strlen(str); i++) { + str[i] = toupper(str[i]); + } + + printf(" : \"%s\"\n", str); +} + +void task6_2() { + char str[81]; + printf("task6_2 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + for (int i = 0; i < strlen(str); i++) { + str[i] = toupperMY(str[i]); + } + + printf(" : \"%s\"\n", str); +} + +void task9_9() { + char str[81]; + printf("task9_9 : "); + fgets(str, 81, stdin); + printf(" : \"%s\"\n", str); + + for (int i = 0; i < strlen(str); i++) { + if ( + str[i] == '!' || str[i] == '?' || str[i] == '.' || + str[i] == ',' || str[i] == ':' || str[i] == ';' || + str[i] == '\"' || str[i] == '\'' + ) { str[i] = '_'; } + } + + printf(" : \"%s\"\n", str); +} + +int main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + setlocale(LC_CTYPE, ""); + + //task1(); + //task2(); + //task3(); + //task4(); + //task5_1(); + //task5_2(); + //task6_1(); + //task6_2(); + //task9_9(); + + return 0; } \ No newline at end of file diff --git a/lab22/lab22.vcxproj b/lab22/lab22.vcxproj index f6b0145..c97103e 100644 --- a/lab22/lab22.vcxproj +++ b/lab22/lab22.vcxproj @@ -1,135 +1,139 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 17.0 - Win32Proj - {f4bf5762-c98d-476b-b1f7-72225bd2b524} - lab22 - 10.0 - - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - Application - true - v143 - Unicode - - - Application - false - v143 - true - Unicode - - - - - - - - - - - - - - - - - - - - - - Level3 - true - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - Level3 - true - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - true - true - true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {f4bf5762-c98d-476b-b1f7-72225bd2b524} + lab22 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + \ No newline at end of file diff --git a/lab22/lab22.vcxproj.filters b/lab22/lab22.vcxproj.filters index 669bc4e..763491a 100644 --- a/lab22/lab22.vcxproj.filters +++ b/lab22/lab22.vcxproj.filters @@ -1,22 +1,30 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Исходные файлы - - + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + Исходные файлы + + + + + Файлы заголовков + + \ No newline at end of file diff --git a/lab22/main.c b/lab22/main.c index 038ee26..c467745 100644 --- a/lab22/main.c +++ b/lab22/main.c @@ -1,133 +1,49 @@ -#define _CRT_SECURE_NO_WARNINGS -#include -#include -#include -#include - -int strlen_my_arr(char str[]) { - int len = 0; - while (str[len] != '\0') { - len++; - } - return len; -} - -int strlen_my_ptr(char* str_ptr) { - char* str_ptr_old = str_ptr; - while (*str_ptr != '\0') { - str_ptr++; - } - return (int)(str_ptr - str_ptr_old); -} - -int strcmp_my_arr(char str1[], char str2[]) { - int i = 0; - while (str1[i] != '\0' && str2[i] != '\0' && str1[i] == str2[i]) { - i++; - } - return str1[i] - str2[i]; -} - -int strcmp_my_ptr(char* str1, char* str2) { - while (*str1 != '\0' && *str2 != '\0' && *str1 == *str2) { - str1++; - str2++; - } - return *str1 - *str2; -} - -char* strcpy_my_arr(char dest[], char source[]) { - int i = 0; - while (source[i] != '\0') { - dest[i] = source[i]; - i++; - } - dest[i] = '\0'; - return dest; -} - -char* strcpy_my_ptr(char* dest, char* source) { - while (*source != '\0') { - *dest = *source; - dest++; - source++; - } - *dest = '\0'; - return dest; -} - -char* strcat_my_ptr(char* destination, const char* source) { - while (*destination != '\0') { - destination++; - } - while (*source != '\0') { - *destination = *source; - destination++; - source++; - } - return destination; -} - -char* strchr_my_arr(char str[], int ch) { - int i = 0; - while (str[i] != '\0') { - if (str[i] == (char)ch) { - return &str[i]; - } - i++; - } - return NULL; -} - -char* strchr_my_ptr(char* str, int ch) { - while (*str != '\0') { - if (*str == (char)ch) { - return str; - } - str++; - } - return NULL; -} - -int main() { - char test1[] = "1234567"; - char test2[] = "12345699"; - printf("test1 string = \"%s\"\n", test1); - printf("test2 string = \"%s\"\n", test2); - printf(" strlen = %d\n", (int)strlen(test1)); - printf("strlen_my_arr = %d\n", strlen_my_arr(test1)); - printf("strlen_my_ptr = %d\n\n", strlen_my_ptr(test1)); - - printf(" strcmp = %d\n", strcmp(test1, test2)); - printf("strcmp_my_arr = %d\n", strcmp_my_arr(test1, test2)); - printf("strcmp_my_ptr = %d\n\n", strcmp_my_ptr(test1, test2)); - - char test_strcpy[81]; - char test_strcpy_my_arr[81]; - char test_strcpy_my_ptr[81]; - strcpy(test_strcpy, test2); - strcpy_my_arr(test_strcpy_my_arr, test2); - strcpy_my_ptr(test_strcpy_my_ptr, test2); - printf(" strcopy result = \"%s\"\n", test_strcpy); - printf("strcopy_my_arr result = \"%s\"\n", test_strcpy_my_arr); - printf("strcopy_my_ptr result = \"%s\"\n", test_strcpy_my_ptr); - - char test_strcat[81] = "abcde"; - char test_strcat_my_ptr[81] = "abcde"; - strcat(test_strcat, test2); - strcat_my_ptr(test_strcat_my_ptr, test2); - printf(" strcat result = \"%s\"\n", test_strcat); - printf("strcat_my_ptr result = \"%s\"\n\n", test_strcat_my_ptr); - - char test3[] = "qazwsxedccdexswzaq"; - printf("test3 string = \"%s\"\n", test3); - - char* strchr_res = strchr(test3, 's'); - printf(" strchr 's' = {%p} = '%c', index = %d\n", strchr_res, *strchr_res, (int)(strchr_res - test3)); - char* strchr_my_arr_res = strchr_my_arr(test3, 's'); - printf("strchr_my_arr_res 's' = {%p} = '%c', index = %d\n", strchr_my_arr_res, *strchr_my_arr_res, (int)(strchr_my_arr_res - test3)); - char* strchr_my_arr_ptr = strchr_my_ptr(test3, 's'); - printf("strchr_my_arr_ptr 's' = {%p} = '%c', index = %d\n", strchr_my_arr_ptr, *strchr_my_arr_ptr, (int)(strchr_my_arr_ptr - test3)); - - return 0; +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include +#include "../string_my/string_my.h" + +int main() { + char test1[] = "1234567"; + char test2[] = "12345699"; + printf("test1 string = \"%s\"\n", test1); + printf("test2 string = \"%s\"\n", test2); + printf(" strlen = %d\n", (int)strlen(test1)); + printf("strlen_my_arr = %d\n", strlen_my_arr(test1)); + printf("strlen_my_ptr = %d\n\n", strlen_my_ptr(test1)); + + printf(" strcmp = %d\n", strcmp(test1, test2)); + printf("strcmp_my_arr = %d\n", strcmp_my_arr(test1, test2)); + printf("strcmp_my_ptr = %d\n\n", strcmp_my_ptr(test1, test2)); + + char test_strcpy[81]; + char test_strcpy_my_arr[81]; + char test_strcpy_my_ptr[81]; + strcpy(test_strcpy, test2); + strcpy_my_arr(test_strcpy_my_arr, test2); + strcpy_my_ptr(test_strcpy_my_ptr, test2); + printf(" strcopy result = \"%s\"\n", test_strcpy); + printf("strcopy_my_arr result = \"%s\"\n", test_strcpy_my_arr); + printf("strcopy_my_ptr result = \"%s\"\n", test_strcpy_my_ptr); + + char test_strcat[81] = "abcde"; + char test_strcat_my_ptr[81] = "abcde"; + strcat(test_strcat, test2); + strcat_my_ptr(test_strcat_my_ptr, test2); + printf(" strcat result = \"%s\"\n", test_strcat); + printf("strcat_my_ptr result = \"%s\"\n\n", test_strcat_my_ptr); + + char test3[] = "qazwsxedccdexswzaq"; + printf("test3 string = \"%s\"\n", test3); + + char* strchr_res = strchr(test3, 's'); + printf(" strchr 's' = {%p} = '%c', index = %d\n", strchr_res, *strchr_res, (int)(strchr_res - test3)); + char* strchr_my_arr_res = strchr_my_arr(test3, 's'); + printf("strchr_my_arr_res 's' = {%p} = '%c', index = %d\n", strchr_my_arr_res, *strchr_my_arr_res, (int)(strchr_my_arr_res - test3)); + char* strchr_my_arr_ptr = strchr_my_ptr(test3, 's'); + printf("strchr_my_arr_ptr 's' = {%p} = '%c', index = %d\n", strchr_my_arr_ptr, *strchr_my_arr_ptr, (int)(strchr_my_arr_ptr - test3)); + + return 0; } \ No newline at end of file diff --git a/lab24/lab24.vcxproj b/lab24/lab24.vcxproj index ef1997f..a3d8ccf 100644 --- a/lab24/lab24.vcxproj +++ b/lab24/lab24.vcxproj @@ -127,6 +127,7 @@ + @@ -137,6 +138,9 @@ + + + diff --git a/lab24/lab24.vcxproj.filters b/lab24/lab24.vcxproj.filters index 224d2c9..b27c883 100644 --- a/lab24/lab24.vcxproj.filters +++ b/lab24/lab24.vcxproj.filters @@ -18,6 +18,9 @@ Исходные файлы + + Исходные файлы + @@ -35,4 +38,9 @@ Файлы ресурсов + + + Файлы заголовков + + \ No newline at end of file diff --git a/lab24/main.c b/lab24/main.c index 75ece00..9ae11cf 100644 --- a/lab24/main.c +++ b/lab24/main.c @@ -3,46 +3,10 @@ #include #include #include +#include "../string_my/string_my.h" #define BUFLEN 128 -int getNextDelim(FILE* file, int* token) { - int ch = getc(file); - if (ch == EOF) { - return 0; - } - - if (isalnum(ch)) { - ungetc(ch, file); - return 0; - } - - *token = ch; - return 1; -} - -int getNextWord(FILE* file, char token[], int len) { - int ch; - int i = 0; - while ((ch = getc(file)) != EOF && (i < len - 1)) { - if (isalnum(ch)) { - token[i] = ch; - } - else { - break; - } - i += 1; - } - ungetc(ch, file); - token[i] = '\0'; - if (i == 0) { - return 0; - } - else { - return 1; - } -} - void task1() { FILE* fin = fopen("files/text1.txt", "r"); if (fin == NULL) {