Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int strCmp(const char* str1, const char* str2)
- {
- size_t len1{ strlen(str1) };
- size_t len2{ strlen(str2) };
- int result{ 0 };
- if (len1 == len2)
- {
- while (*str1 and (*str1 == *str2))
- {
- ++str1;
- ++str2;
- }
- result = *str1 ? 2 : 0;
- }
- else { result = len1 > len2 ? 1 : -1; }
- return result;
- }
- char* strRev(char* str)
- {
- char* head{ str };
- char* tail{ str };
- while (*tail++);
- tail-=2;
- for (char tmp; head < tail; ++head, --tail)
- {
- tmp = *head;
- *head = *tail;
- *tail = tmp;
- }
- return str;
- }
- char* toUpper(char* str)
- {
- const char caseConvert{ 32 };
- char* start{ str };
- for (;*str; ++str)
- {
- if (*str >= 'a' and *str <= 'z') { *str -= caseConvert; }
- }
- return start;
- }
- char* toLower(char* str)
- {
- const char caseConvert{ 32 };
- char* start{ str };
- for (; *str; ++str)
- {
- if (*str >= 'A' and *str <= 'Z') { *str += caseConvert; }
- }
- return start;
- }
- char* numToStr(int num, char* str)
- {
- char tmp;
- for (size_t i{ 0 }; *(str + i) = (num > 0 ? '0' + (num % 10) : 0); num /= 10, ++i);
- for (size_t head{ 0 }, tail{ strlen(str) - 1 }; head < tail; ++head, --tail)
- {
- tmp = *(str + head);
- *(str + head) = *(str + tail);
- *(str + tail) = tmp;
- }
- return str;
- }
- int strToNum(const char* str)
- {
- int num{ 0 };
- for (; *str; num *= 10, num += *str++ - '0');
- return num;
- }
- int main()
- {
- char strA[]{ "Hello!" };
- char strB[]{ "Hello#" };
- char strC[]{ "Hello, world!" };
- char str[]{ "123456" };
- char str1[]{ "Hello!" };
- char str2[]{ "Hello, number 1 (One) WoRlD!" };
- char str3[]{ "Hello, number 1 (One) WoRlD!" };
- std::cout << "Equal: " << std::boolalpha << (strCmp(strA, strA) == 0) << '\n';
- std::cout << "Not equal: " << std::boolalpha << (strCmp(strA, strB) == 2) << '\n';
- std::cout << "First shorter: " << std::boolalpha << (strCmp(strA, strC) == -1) << '\n';
- std::cout << "First longer: " << std::boolalpha << (strCmp(strC, strA) == 1) << '\n';
- std::cout << strRev(str) << '\n';
- std::cout << strRev(str1) << '\n';
- std::cout << toUpper(str) << '\n';
- std::cout << toUpper(str1) << '\n';
- std::cout << toUpper(str2) << '\n';
- std::cout << toLower(str) << '\n';
- std::cout << toLower(str1) << '\n';
- std::cout << toLower(str3) << '\n';
- char strBuf[10];
- std::cout << numToStr(26907, strBuf) << '\n';
- std::cout << strToNum(strBuf) << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement