Advertisement
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);
- while (*str++)
- {
- ++len;
- }
- return len;
- }
- void strdupM(const char* src, char* dest)
- {
- while (*src)
- {
- *dest++ = *src++;
- }
- *dest = '\0';
- };
- char* strndupM(const char* src, char* dest, int size)
- {
- for (int cnt{ 0 }; *dest++ = (cnt < size - 1 ? *src++ : 0); cnt++);
- return dest;
- }
- char* strcpyM(const char* src, char* dest)
- {
- for (dest += strlenM(dest); *dest++ = *src++;);
- return dest;
- }
- char* strncpyM(const char* src, int size, char* dest)
- {
- //int cnt{ strlenM(dest) };
- //for (dest += cnt; *dest++ = (cnt < size - 1 ? *src++ : '\0'); cnt++);
- int cnt{ 0 };
- for (; *dest++; ++cnt);
- --dest;
- for (; *dest++ = (cnt < size - 1 ? *src++ : '\0'); cnt++);
- return dest;
- }
- const char* strchM(const char* str, const char ch)
- {
- while (*str)
- {
- if (*str == ch) return str;
- ++str;
- }
- return nullptr;
- }
- //"Hello, bright word! Hello, darling! Hello, John!"
- //"Hello, world!"[7]
- //
- //"w+"[1]
- //
- //(str + 7)
- 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',' ',',','w', 'o', 'r','l','d','!' };
- char str[150]{ "Hello, bright world! Hello, darling! Hello, John!" };
- char* strDyn{ new char[50]{ "sdfs0.00" } };
- char* str1{ new char[30]{" bright world!"} };
- double num{ 36.0 };
- num = atof(strDyn);
- if (num == 0 and strDyn[0] == '0')
- {
- std::cout << "Num really is zero!";
- }
- else if (num == 0 and strDyn[0] != '0')
- {
- std::cout << "Error converting string to num";
- }
- else
- {
- std::cout << "Num is: " << num << '\n';
- }
- //strDyn[0] = tolower(strDyn[0]);
- //str1[0] = toupper(str1[0]);
- /*char strDyn[10]{ "Hello" };
- char str1[10]{"Hello"};*/
- /*strcat_s(strDyn, 50, str1);
- std::cout << "Output of strDyn: " << strDyn << ' ' << strlen(strDyn) << '\n';*/
- return 0;
- //char inStr[50];
- //int num{ 0 };
- //std::cout << "Enter some number into num\n";
- //std::cin >> num;
- //std::cout << "Output of num: " << num << '\n';
- //std::cin.ignore(32767, '\n');
- //std::cout << "Enter some str into inStr\n";
- //std::cin.getline(inStr,50);
- //std::cout << "Output of inStr: " << inStr << ' ' << strlenM(inStr)<< '\n';
- //std::cout << "Enter some number into num\n";
- //std::cin >> num;
- //std::cout << "Output of num: " << num << '\n';
- //std::cin >> inStr;
- //std::cout << "Output of inStr: " << inStr << ' ' << strlenM(inStr) << '\n';
- /*char subStr[200]{ "worl" };
- const char* res{ strstrM(str,subStr) };*/
- //if (res)
- //{
- // std::cout << subStr << " found! At position " << res - str << '\n';
- //}
- //else
- //{
- // std::cout << subStr << " NOT found!\n";
- //}
- //strdupM("Hello", subStr);
- //res = str;
- //while (res = strstrM(res, subStr))
- //{
- // std::cout << subStr << " found at position " << res - str << '\n';
- // ++res;
- //}
- //char searchCh{ 'q' };
- //const char* res{ strchM(str, searchCh) };
- //if (res)
- //{
- // std::cout << *res << " found!\n";
- //}
- //else
- //{
- // std::cout << searchCh << " NOT found!\n";
- //}
- //searchCh = 'l';
- //res = str;
- //while (res = strchM(res, searchCh))
- //{
- // std::cout << *res << " found at position " << res - str << '\n';
- // ++res;
- //}
- /*strncpyM(str1, 30, strDyn);*/
- //strndupM("Test str copy",5, str1);
- /*std::cout << strDyn << '\n';*/
- //std::cout << strlenM(strDyn) << '\n';
- //char* strOut{ strDyn };
- //while (*strOut)
- //{
- // std::cout << *strOut++;
- //}
- //std::cout << '\n';
- delete[] strDyn;
- delete[] str1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement