Передача параметров в функцию - C (СИ) (71329)
Формулировка задачи:
Здравствуйте. Пишу аналог функции strtok. Начал на с++ и написал код:
Потом решил, всё это дело переписать на Си, но возникла проблема, вот этот параметр: компилятор Си отказывается принимать, подскажите, пожалуйста, как это дело уладить.
p.s. str1 должна сохранять все изменения которые она претерпела в функции. Приведенный выше код полностью рабочий на C++. То что mstrtok не совсем strtok, на это внимание можете не обращать.
Заранее спасибо за ответы.
char *mstrtok(char * &str1, const char *str2) { char *str3; if (str1 == NULL) return NULL; while (*str1 != '\0' && *str1 == *str2) str1++; str3 = str1; while (*str1 != '\0' && *str1 != *str2) str1++; if (*str1 != '\0') { str1 = str1++; str1[-1] = 0; } else { str1 = NULL; } return str3; }
char * &str1
Решение задачи: «Передача параметров в функцию»
textual
Листинг программы
char *mstrtok(char **str1, const char *str2) { char *str3; if (*str1 == NULL) return NULL; while (**str1 != '\0' && **str1 == *str2) (*str1)++; str3 = *str1; ...
Объяснение кода листинга программы
- В функции
mstrtok
принимаются два параметра:str1
иstr2
. - Переменная
str3
инициализируется значением*str1
. - Проверяется, является ли
*str1
равнымNULL
. Если это так, то функция возвращаетNULL
. - В цикле происходит проверка, равен ли символ, на который указывает
*str1
, нулю или символу, на который указываетstr2
. Если это так, то*str1
увеличивается на 1. - После цикла
str3
содержит подстроку, начинающуюся с первого символа, не совпадающего с последним символом вstr2
. - Возвращается значение
str3
. - ... (продолжение реализации функции не указано в предоставленном коде)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д