Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int strlenM(const char* str)
- {
- int len{ 0 };
- for (; *str++; ++len);
- return len;
- }
- char* strdupM(const char* src, char* dest)
- {
- char* destOrig{ dest };
- while (*dest++ = *src++);
- return destOrig;
- };
- char* strndupM(const char* src, char* dest, int maxSize)
- {
- char* destOrig{ dest };
- for (--maxSize; *dest++ = (maxSize ? *src++ : '\0'); --maxSize);
- return destOrig;
- }
- char* strcatM(const char* append, char* dest)
- {
- char* destOrig{ dest };
- while (*dest++);
- --dest;
- while (*dest++ = *append++);
- return destOrig;
- }
- char* strncatM(const char* append, char* dest, int maxSize)
- {
- char* destOrig{ dest };
- while(*dest++);
- --dest;
- for (--maxSize; *dest++ = (maxSize ? *append++ : '\0'); --maxSize);
- return destOrig;
- }
- const char* strchM(const char* str, char ch)
- {
- while (*str++)
- {
- if (*str == ch) return str;
- }
- return nullptr;
- }
- //str = "Hello, bright world!"[7]
- //
- //search = "bri123"[0]
- const char* strstrM(const char* str, const char* search)
- {
- for (int strIdx{ 0 }; str[strIdx]; ++strIdx)
- {
- for (int searchIdx{ 0 }; str[strIdx + searchIdx] == search[searchIdx]; ++searchIdx)
- {
- if (!search[searchIdx + 1]) { return str + strIdx; }
- }
- }
- return nullptr;
- }
- int main()
- {
- //char str[20]{ 'H','e','l','l','o','!','\0' };
- char str[120]{ "world, bright world!" };
- char* str1{ new char[20]{"Hello, world!"} };
- //std::cout << strlenM("Hello, mr. President!") << '\n';
- //std::cout << str1;
- char* strCopy{ new char[50] {"Hello, "} };
- char* inStr{new char[3]};
- std::cout << "Enter some string to inStr\n";
- std::cin.getline(inStr, 3);
- //std::cin >> inStr;
- std::cout << "inStr = " << inStr << " strlenM = " << strlenM(inStr)<< '\n';
- //std::cin >> inStr;
- //std::cout << "inStr = " << inStr << " strlenM = " << strlenM(inStr) << '\n';
- //strdupM(str, strCopy);
- //std::cout << strndupM(str, strCopy,50) << '\n';
- //std::cout << strcatM(str, strCopy) <<' ' << strlenM(strCopy) << '\n'; //Hello, bright world!
- //char searchCh{ 'z' };
- //const char* res{ strchM(str, searchCh) };
- //if (res)
- //{
- // std::cout << *res << " found!";
- //}
- //else
- //{
- // std::cout << searchCh << " NOT found!";
- //}
- //const char subStr[]{ "world" };
- //const char* res{ strstrM(str,subStr) };
- //if (res)
- //{
- // std::cout << subStr << " found! At position " << res - str << '\n';
- //}
- //else
- //{
- // std::cout << subStr << " NOT found!\n";
- //}
- //const char* secondMatch{ strstrM(res + strlenM(subStr),subStr) };
- //if (secondMatch)
- //{
- // std::cout << subStr << " found! At position " << secondMatch - str << '\n';
- //}
- //else
- //{
- // std::cout << subStr << " NOT found!" << '\n';
- //}
- }
Advertisement
Add Comment
Please, Sign In to add comment