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