Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Результаты выполнения этой программы таковы.Индекс равен 9 Поскольку искомая подстрока существует в заданной строке, выполняется первая Инструкция return. В качестве упражнения измените программу так, чтобы ею выполнялся поиск Подстроки, которая не является частью заданной строки. В этом случае функция find_substr() Должна возвратить значение -1 (благодаря второй инструкции return) В следующем примере функция print_vertical() выводит аргумент Командной строки в вертикальном направлении (вниз) по левому краю экрана. Поскольку эта Функция не возвращает никакого значения, в ее объявлении использовано ключевое слово void. #include <iostream> Using namespace std; void print_vertical(char *str); int main(int argc, char *argv[]) { if(argc==2) print_vertical(argv[1]); Return 0; } void print_vertical(char *str) { while(*str) cout << *str++ << '\n'; } Поскольку print_vertical() объявлена как void-функция, ее нельзя использовать в Выражении. Например, следующая инструкция неверна и поэтому не скомпилируется. х = print_vertical("Привет!"); // ошибка Чтобы вернуть указатель, функция должна объявить его тип в качестве типа возвращаемого Значения. Вот как, например, объявляется тип возвращаемого значения для функции f(), которая Должна возвращать указатель на целое число. int *f(); Если функция возвращает указатель, то значение, используемое в ее инструкции return, также должно быть указателем// которая возвращает указатель на подстроку. #include <iostream> Using namespace std; char *find_substr(char *sub, char *str); Int main() { char *substr; substr = find_substr("три", "один два три четыре"); cout << "Найденная подстрока: " << substr; Return 0; } // Функция возвращает указатель на искомую подстроку или нуль, если таковая не Будет найдена. char *find_substr(char *sub, char *str) { Int t; char *p, *p2, *start; for(t=0; str[t]; t++) { p = &str[t]; // установка указателей start = p; р2 = sub; while(*р2 && *p2==*p) { // проверка совпадения р++; р2++; } /* Если достигнут конец р2-подстроки, то эта подстрока была найдена. */ if(!*р2) return start; // Возвращаем указатель на начало найденной подстроки. } return 0; // подстрока не найдена }
|