Функция определяет в строке номер позиции слова с заданным номером - C (СИ)
Формулировка задачи:
Разработать функцию, которая выполняет ту обработку символьной строки, которая определена в Вашем индивидуальном задании. При реализации функции запрещается пользоваться функциями библиотек языка C.
Функция определяет в строке номер позиции слова с заданным номером.
Решение задачи: «Функция определяет в строке номер позиции слова с заданным номером»
textual
Листинг программы
int func(char *s, int num) { int n = 0, f = 0; char *p = s; while (*p) { if (*p == ' ') f = 0; else if (f == 0) { f = 1; if (++n == num) break; } p++; } return *p ? (int)(p - s) + 1 : 0; } int main(int argc, const char * argv[]) { int n, pos; char s[] = "hello world world\0"; scanf("%d", &n); if (pos = func(s, n)) printf("pos = %d\n", pos); else printf("not found\n"); return 0; }
Объяснение кода листинга программы
- В функции func мы ищем в строке s слово с заданным номером.
- Переменная n отслеживает количество искомых слов.
- Переменная f отслеживает текущее слово.
- Переменная p является указателем на текущий символ в строке.
- В цикле while мы проходим по каждому символу в строке.
- Если текущий символ является пробелом, то мы сбрасываем значение f обратно на 0.
- Если f равно 0, то мы устанавливаем f в 1, обновляем значение n и проверяем, равно ли n заданному номеру. Если да, то мы выходим из цикла с помощью оператора break.
- В конце функции func мы возвращаем позицию последнего найденного слова в строке.
- В функции main мы считываем из консоли номер слова для поиска.
- Затем мы вызываем функцию func и сохраняем ее возвращаемое значение в переменной pos.
- Если слово было найдено, мы выводим его позицию на экран.
- Если слово не было найдено, мы выводим сообщение
not found
. - В конце функции main мы возвращаем 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д