Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <cstring>
- int myStrCmp(const char* str1, const char* str2) {
- int count1 = 0;
- int count2 = 0;
- int countEqual = 0;
- while (str1[count1] != '\0') {
- ++count1;
- }
- ++count1;
- while (str2[count2] != '\0') {
- ++count2;
- }
- ++count2;
- if (count1 > count2)
- return 1;
- else if (count1 < count2)
- return -1;
- else {
- for (int i = 0; i < count1; ++i) {
- if (str1[i] > str2[i])
- return 1;
- else if (str2[i] > str1[i])
- return -1;
- else ++countEqual;
- }
- }
- if (countEqual == count1) return 0;
- }
- int stringToNumber(char* str) {
- int sizeStr = 0;
- int* digits = new int[32];
- int numInUnicod = 0;
- int sizeNumber = 0;
- int resultNumber = 0;
- while (str[sizeStr] != '\0') {
- numInUnicod = (int)str[sizeStr];
- if (numInUnicod < 48 || numInUnicod > 57) {
- return -1;
- }
- else {
- switch (numInUnicod) {
- case 48: digits[sizeStr] = 0; ++sizeNumber; break;
- case 49: digits[sizeStr] = 1; ++sizeNumber; break;
- case 50: digits[sizeStr] = 2; ++sizeNumber; break;
- case 51: digits[sizeStr] = 3; ++sizeNumber; break;
- case 52: digits[sizeStr] = 4; ++sizeNumber; break;
- case 53: digits[sizeStr] = 5; ++sizeNumber; break;
- case 54: digits[sizeStr] = 6; ++sizeNumber; break;
- case 55: digits[sizeStr] = 7; ++sizeNumber; break;
- case 56: digits[sizeStr] = 8; ++sizeNumber; break;
- case 57: digits[sizeStr] = 9; ++sizeNumber; break;
- }
- }
- ++sizeStr;
- }
- for (int i = 0; i < sizeNumber; ++i){
- for (int j = 0; j < sizeNumber - i - 1; ++j) {
- digits[i] *= 10;
- }
- resultNumber += digits[i];
- }
- delete[] digits;
- return resultNumber;// не учла отрицательные числа
- }
- char* numberToString(int number) {
- int arrayDigit[32] = {};
- int countDigit = 0;
- for (int i = number / 10; i >= 0; i /= 10) {
- if (i == 0) {
- arrayDigit[countDigit] = number;
- break;
- }
- int digit = number - i * 10;
- arrayDigit[countDigit] = digit;
- ++countDigit;
- number = i;
- }
- char* strDigit = new char[countDigit + 1];// где очистить эту память???
- int countChar = 0;
- for (int i = countDigit; i >= 0; --i) {
- switch (arrayDigit[i]) {
- case 0: strDigit[countChar] = '0'; ++countChar; break;
- case 1: strDigit[countChar] = '1'; ++countChar; break;
- case 2: strDigit[countChar] = '2'; ++countChar; break;
- case 3: strDigit[countChar] = '3'; ++countChar; break;
- case 4: strDigit[countChar] = '4'; ++countChar; break;
- case 5: strDigit[countChar] = '5'; ++countChar; break;
- case 6: strDigit[countChar] = '6'; ++countChar; break;
- case 7: strDigit[countChar] = '7'; ++countChar; break;
- case 8: strDigit[countChar] = '8'; ++countChar; break;
- case 9: strDigit[countChar] = '9'; ++countChar; break;
- }
- }
- strDigit[countDigit + 1] = '\0';
- return strDigit;
- }
- char* upperCase(char* str) {
- int sizeStr = strlen(str);
- for (int i = 0; i < sizeStr; ++i) {
- int numUtf8 = (int)str[i];
- switch (numUtf8) {
- case 97: str[i] = 'A'; break;
- case 98: str[i] = 'B'; break;
- case 99: str[i] = 'C'; break;
- case 100: str[i] = 'D'; break;
- case 101: str[i] = 'E'; break;
- case 102: str[i] = 'F'; break;
- case 103: str[i] = 'G'; break;
- case 104: str[i] = 'H'; break;
- case 105: str[i] = 'I'; break;
- case 106: str[i] = 'J'; break;
- case 107: str[i] = 'K'; break;
- case 108: str[i] = 'L'; break;
- case 109: str[i] = 'M'; break;
- case 110: str[i] = 'N'; break;
- case 111: str[i] = 'O'; break;
- case 112: str[i] = 'P'; break;
- case 113: str[i] = 'Q'; break;
- case 114: str[i] = 'R'; break;
- case 115: str[i] = 'S'; break;
- case 116: str[i] = 'T'; break;
- case 117: str[i] = 'U'; break;
- case 118: str[i] = 'V'; break;
- case 119: str[i] = 'W'; break;
- case 120: str[i] = 'X'; break;
- case 121: str[i] = 'Y'; break;
- case 122: str[i] = 'Z'; break;
- }
- }
- return str;
- }
- char* lowerCase(char* str) {
- int sizeStr = strlen(str);
- for (int i = 0; i < sizeStr; ++i) {
- int numUtf8 = (int)str[i];
- switch (numUtf8) {
- case 65: str[i] = 'a'; break;
- case 66: str[i] = 'b'; break;
- case 67: str[i] = 'c'; break;
- case 68: str[i] = 'd'; break;
- case 69: str[i] = 'e'; break;
- case 70: str[i] = 'f'; break;
- case 71: str[i] = 'g'; break;
- case 72: str[i] = 'h'; break;
- case 73: str[i] = 'i'; break;
- case 74: str[i] = 'j'; break;
- case 75: str[i] = 'k'; break;
- case 76: str[i] = 'l'; break;
- case 77: str[i] = 'm'; break;
- case 78: str[i] = 'n'; break;
- case 79: str[i] = 'o'; break;
- case 80: str[i] = 'p'; break;
- case 81: str[i] = 'q'; break;
- case 82: str[i] = 'r'; break;
- case 83: str[i] = 's'; break;
- case 84: str[i] = 't'; break;
- case 85: str[i] = 'u'; break;
- case 86: str[i] = 'v'; break;
- case 87: str[i] = 'w'; break;
- case 88: str[i] = 'x'; break;
- case 89: str[i] = 'y'; break;
- case 90: str[i] = 'z'; break;
- }
- }
- return str;
- }
- char* myStrRev(char* str) {
- int sizeStr = strlen(str);
- int countStr = sizeStr - 1;
- char* newStr = new char[sizeStr];// и эту память где очистить, не понятно
- for (int i = 0; i < sizeStr; ++i) {
- newStr[i] = str[countStr];
- --countStr;
- }
- newStr[sizeStr] = '\0';
- return newStr;
- }
Add Comment
Please, Sign In to add comment