Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- /*
- Написать свою функцию:
- * подсчета символов в строке
- * копирования из одной строки в другую (аналог strcpy)
- - копирования части строки (аналог strncpy. Исправить функцию так,
- чтоб она ставила ноль-терминатор в конце текста в отличии от "старшего брата"
- - сравнение строк (аналог strcmp)
- - поиск символа в строке (аналог strchr, но написать функцию так, чтоб она возвращала
- номер символа в строке или -1, если символа нет)
- */
- //Узнаем длинну строки
- int lengthstr(char* str)
- {
- int count = 0;
- for(int i = 0; str[i] != '\0'; i++)
- count++;
- return count;
- }
- //копируем строки
- //if variable is new
- char* copystr(char* str)
- {
- char* tmp = nullptr;
- tmp = new char[lengthstr(str)+1];
- for(int i = 0; str[i] != '\0'; i++)
- tmp[i] = str[i];
- tmp[lengthstr(str)] = '\0';
- return tmp;
- }
- //if variable isn't new
- void copystr(char* str, char*& tostr)
- {
- char* tmp = nullptr;
- tmp = new char[lengthstr(str)+1];
- for(int i = 0; str[i] != '\0'; i++)
- tmp[i] = str[i];
- tmp[lengthstr(str)] = '\0';
- delete[] tostr;
- tostr = tmp;
- }
- //копируем часть строки
- void copystr(char* str, char*& tostr, int start, int finish)
- {
- char* tmp = new char[finish - start + 2];
- for(int i = start, j = 0; i <= finish; i++, j++)
- tmp[j] = str[i];
- tmp[finish - start + 1] = '\0';
- delete[] tostr;
- tostr = tmp;
- }
- //сравниваем строки
- bool compstr(char* str1, char* str2)
- {
- if(lengthstr(str1) != lengthstr(str2)) return false;
- for(int i = 0; str1[i] != '\0' || str2[i] != '\0'; i++)
- {
- if(str1[i] != str2[i])
- {
- return false;
- }
- }
- return true;
- }
- //ищем тайный смысл
- int searchchar(char* str, char chr)
- {
- for(int i = 0; str[i] != '\0'; i++)
- if (str[i] == chr) return i;
- return -1;
- }
- int main()
- {
- char* str = nullptr;
- char tmp[100];
- cout << "Enter your text\n";
- cin.getline(tmp,100);
- // тестим опридилятор длин
- str = new char[lengthstr(tmp)+1];
- //тестим копирование строк
- copystr(tmp, str);
- //снова длины :D
- cout << str << "(" << lengthstr(str) << ")" << endl;
- //копируем но не все как на контрольной у соседа
- copystr(tmp, str, 2, 3);
- cout << str << endl;
- //тестим как там с сравнениями
- char srt[] = "hello";
- char srt2[] = "helle";
- cout << compstr(srt, srt2) << endl;
- //ищем символы
- cout << searchchar(srt, 'h') << endl;
- cout << searchchar(srt2, 'e') << endl;
- cout << searchchar(srt, 'z') << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement