Использование strlen()
Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 15 из 63.
Ты научился считывать строки, введённые пользователем, но теперь тебе нужен способ определить их длину. Для этой цели в C есть функция strlen() из библиотеки <string.h>.
Функция strlen() подсчитывает количество символов в строке, останавливаясь, когда доходит до нулевого терминатора \0. Важно, что она не включает нулевой терминатор в подсчёт — она подсчитывает только видимые символы.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Выводит: Length: 5Чтобы использовать strlen(), необходимо подключить заголовочный файл <string.h> в начале программы. Функция принимает строку в качестве аргумента и возвращает целое число, обозначающее количество символов перед нулевым терминатором.
Эта функция особенно полезна, когда нужно узнать, сколько места занимает строка, проверить длину ввода или выполнить операции, зависящие от размера строки. Это одна из наиболее часто используемых функций для работы со строками в программировании на C.
Задание
ЛегкоНапиши программу на C, которая считывает из входных данных несколько слов и анализирует их длину с помощью функции strlen(). Твоя программа должна:
- В строках выше твоего кода уже считывается целое число
n— количество слов для обработки - Для каждого из
nслов:- Объявить символьный массив из 50 элементов для хранения слова
- Считать слово с помощью
scanf - Использовать
strlen(), чтобы вычислить длину слова - Вывести слово и его длину в указанном формате
- После обработки всех слов записать общее количество символов во всех словах в
total_characters - Записать длину самого длинного слова в
max_length
В строках выше твоего кода уже подключён заголовочный файл <string.h>, необходимый для работы strlen().
Строки ниже твоего кода выводят значения total_characters и max_length. Вывод должен выглядеть так:
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Например, если входные данные такие:
3
hello
programming
CТвой вывод должен быть таким:
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Это задание проверяет, насколько ты понимаешь, как использовать strlen() для измерения длины строк, обрабатывать несколько строк с помощью циклов и выполнять вычисления на основе данных о длине строк.
Попробуйте сами
// TODO: Напишите здесь свой код
// Обработайте каждое слово в цикле
// Для каждого слова:
// - Объявите массив символов из 50 элементов
// - Считайте слово с помощью scanf
// - Вычислите длину с помощью strlen()
// - Выведите слово и его длину
// - Обновите total_characters и max_length
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функцииПотренируйтесь самостоятельно: Онлайн-компилятор C