Как проверить строку на пустоту в Си — инструкция и примеры

Строка – это последовательность символов, заключенных в двойные кавычки. В программировании часто возникает необходимость проверить, является ли строка пустой. Для этой цели в языке программирования Си существует несколько способов.

Первый способ — проверить, равна ли длина строки нулю. Если строка пустая, то ее длина будет равна 0. Для проверки используется функция strlen(), которая возвращает длину строки. Затем сравниваем полученное значение с нулем с помощью оператора ==.

Второй способ — использовать функцию strcmp(), которая сравнивает две строки. Если строки равны, то функция вернет 0. Если строка пустая, то сравнение с пустой строкой также даст 0. Поэтому можно проверить результат сравнения на равенство нулю.

Метод 1: Использование функции strlen()

Рассмотрим пример использования данного метода:

Пример:

#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Введите строку: ");
fgets(str, 100, stdin);
// Проверка на пустоту
if (strlen(str) == 0) {
printf("Строка пуста
");
} else {
printf("Строка не пуста
");
}
return 0;
}

Этот метод позволяет нам легко проверить, является ли строка пустой или нет с помощью всего одной функции.

Метод 2: Проверка на нулевую длину с помощью оператора if

  1. Определите строку, которую необходимо проверить.
  2. Используйте оператор if для проверки длины строки.
  3. Если длина строки равна нулю, то это означает, что строка пустая.
  4. Вы можете выполнить необходимые действия, если строка пустая, или продолжить выполнение программы, если строка не пустая.

Вот пример кода, который демонстрирует этот метод:

#include <stdio.h>
#include <string.h>
int main() {
char myString[100];
printf("Введите строку: ");
scanf("%s", myString);
if(strlen(myString) == 0) {
printf("Строка пустая.
");
}
else {
printf("Строка не пустая.
");
}
return 0;
}

По мере выполнения этого кода, вы будете приглашены ввести строку. Если вы введете пустую строку, то программа выведет сообщение «Строка пустая». В противном случае будет выведено сообщение «Строка не пустая».

Используя оператор if для проверки длины строки, вы можете проверять строки на пустоту в своих программах на языке Си.

Метод 3: Использование функции strcmp()

Функция strcmp() возвращает целое число, которое указывает на отношение между двумя строками. Если результат равен 0, это означает, что строки идентичны. Если результат отрицательный (-1), это означает, что первая строка «меньше» второй в алфавитном порядке. Если результат положительный (+1), это означает, что первая строка «больше» второй.

Используя функцию strcmp(), мы можем проверить, является ли строка пустой. Для этого мы сравниваем строку с пустой строкой («»), и если результат равен 0, то строка пустая.

#include <stdio.h>
int main() {
char str[] = "Пример строки";
if (strcmp(str, "") == 0) {
printf("Строка пустая
");
} else {
printf("Строка не пустая
");
}
return 0;
}

В этом методе необходимо быть осторожными, так как если строка содержит пробелы или другие «невидимые» символы, она может быть считана как непустая, даже если она кажется пустой. Для избежания этого рекомендуется предварительно обрабатывать строку, удаляя все ненужные символы.

Метод 4: Использование функции strchr()

Для проверки строки на пустоту мы можем использовать функцию strchr(), чтобы найти первое вхождение ненулевого символа в строке. Если ненулевой символ найден, это значит, что строка не пуста.

Вот пример кода:

#include <stdio.h>
#include <string.h>
int isEmpty(char* str) {
if (strchr(str, '\0') == str) {
return 1; // строка пуста
} else {
return 0; // строка не пуста
}
}
int main() {
char str1[] = ""; // пустая строка
char str2[] = "Пример строки";
if (isEmpty(str1)) {
printf("Строка 1 - пуста\
");
} else {
printf("Строка 1 - не пуста\
");
}
if (isEmpty(str2)) {
printf("Строка 2 - пуста\
");
} else {
printf("Строка 2 - не пуста\
");
}
return 0;
}

Данный код определяет функцию isEmpty(), которая принимает строку как аргумент и проверяет, содержит ли она ненулевые символы. Если строка не содержит ненулевых символов, то функция возвращает 1, иначе 0.

Строка 1 - пуста
Строка 2 - не пуста

Таким образом, с использованием функции strchr() мы можем легко проверить строку на пустоту в языке Си.

Метод 5: Использование функции strlen() и оператора if

Вот пример кода:

#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Введите строку: ");
fgets(str, sizeof(str), stdin);
// Удаление символа новой строки из строки
str[strcspn(str, "
")] = '\0';
// Проверка строки на пустоту
if(strlen(str) == 0) {
printf("Строка пустая
");
} else {
printf("Строка не пустая
");
}
return 0;
}

В этом примере пользователю будет предложено ввести строку, которая будет сохранена в массиве символов ‘str’. Затем мы используем функцию fgets() для чтения строки из стандартного ввода. Далее мы удаляем символ новой строки из строки, используя функцию strcspn().

Этот метод прост и надежен для проверки строки на пустоту в Си.

Метод 6: Использование функций isspace() и strlen()

Функция isspace() определяет, является ли символ пробелом или пустым символом. Поэтому ее можно использовать для проверки каждого символа в строке на пустоту.

Функция strlen() позволяет узнать длину строки. Если длина строки равна нулю, то она считается пустой.

#include <ctype.h>
#include <string.h>
int is_string_empty(const char* str) {
size_t len = strlen(str);
for (size_t i = 0; i < len; i++) {
if (!isspace(str[i])) {
return 0;
}
}
return 1;
}

В данном примере функция is_string_empty() принимает указатель на строку и проверяет каждый символ на пустоту с помощью функции isspace(). Если встречается любой символ, который не является пробелом или пустым символом, функция возвращает 0, что означает, что строка не пустая. В противном случае, если все символы являются пробелами или пустыми символами, функция возвращает 1, что означает, что строка пуста.

Оцените статью
Добавить комментарий