Menu
Coddy logo textTech

Использование 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.

challenge icon

Задание

Легко

Напишите программу на языке C, которая считывает несколько слов из входных данных и анализирует их длину с помощью функции strlen(). Ваша программа должна:

  1. Считать целое число n, представляющее количество слов для обработки
  2. Для каждого из n слов:
    • Объявить символьный массив из 50 элементов для хранения слова
    • Считать слово с помощью scanf
    • Использовать strlen() для вычисления длины слова
    • Вывести слово и его длину в указанном формате
  3. После обработки всех слов вычислить и вывести общее количество символов во всех словах
  4. Найти и вывести длину самого длинного встреченного слова

Не забудьте включить заголовочный файл <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;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow