Как проверить пустая ли строка c
как сделать проверку на пустую строку?
при таком методе:
strcmp(str, «\0»)
при нажатии ентер сразу после запроса ввода — программа не распознает пустую строку
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,254
Предположу, что строка str не пустая, а равна «\n».
Пишите язык программирования — это форум программистов , а не экстрасенсов. (<= это подпись )
Регистрация: 20.12.2013
Сообщений: 4
Если же первый же символ ‘\0’, то строка пуста
Белик Виталий 🙂
Регистрация: 23.07.2007
Сообщений: 57,792
Я обычно люблю просто: if(str[0]) cout << "str is empty";
Хотя понятие пустоты строки (согласен с BDA) относительное.
Я лично считаю что строка пуста даже если в ней +100500 пробелов, хотя как массив символов она не пустая. Так что автор думаю должен уточнить задание.<>
I’m learning to live.
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Пустая строка в Си | приправыч | Помощь студентам | 1 | 08.12.2012 15:13 |
| В конце базы пустая строка | scroyler | БД в Delphi | 10 | 26.03.2012 20:18 |
| Пустая строка при считывании из БД | Sam Gold | C/C++ Базы данных | 3 | 27.09.2011 10:30 |
| Пустая строка | ForzaJuve | Общие вопросы C/C++ | 3 | 13.10.2010 15:41 |
| Пока Пустая строка, не считать! | Mikhail91 | Общие вопросы C/C++ | 1 | 16.02.2010 00:55 |
Как проверить строку на пустоту?
Всем доброго времени суток! Мне нужно вводить имя книги и проверять в блоке try, если введена пустая строка или клавиша ENTER, то выводилось сообщение о неверном вводе. У меня получается так что блок catch почему то пропускается и не ловит ошибку. Заранее спасибо за ответы!
char* namebook = (char*)malloc(20);//буфер записи названи puts("Введите название книги"); try //проверка исключения < scanf("%s", namebook); int a = strlen(namebook); if (a == 0) throw(char*)"Вы ввели пустую строку"; >catch (const char* exception)
Отслеживать
задан 24 мая 2022 в 20:47
13 4 4 бронзовых знака
stackoverflow.com/questions/7970617/… В первом же ответе показано решение вашей задачи
24 мая 2022 в 20:56
scanf не может вводить пустые строки
24 мая 2022 в 20:59
Я попытася вводить через cin и сделал проверку на конец строки (написал «\0») и все равно при нажатии ENTER не выводится сообщение об исключении
24 мая 2022 в 21:12
Покажите, как именно через cin .
Тест на пустые строки и отсутствующие значения
Строковые массивы могут содержать и пустые строки и отсутствующие значения. Пустые строки содержат нулевые символы и отображение как двойные кавычки ни с чем между ними ( «» ). Можно определить, является ли строка пустой строкой с помощью == оператор. Пустая строка является подстрокой любой строки. Поэтому функционирует, такие как contains всегда находите пустую строку в других строках. Строковые массивы также могут содержать отсутствующие значения. Отсутствующие значения в строковых массивах отображаются как . Чтобы найти отсутствующие значения в массиве строк, используйте ismissing функция вместо == оператор.
Тестирование на пустые строки
Можно протестировать массив строк на пустые строки с помощью == оператор.
Начиная в R2017a, можно создать пустую строку с помощью двойных кавычек ни с чем между ними ( «» ). Обратите внимание на то, что размер str 1 на 1, не 0 на 0. Однако str содержит нулевые символы.
Создайте пустой символьный вектор с помощью одинарных кавычек. Обратите внимание на то, что размер chr 0 на 0. Символьный массив chr на самом деле пустой массив, и не только массив с нулевыми символами.
chr = 0x0 empty char array
Создайте массив пустых строк с помощью strings функция. Каждым элементом массива является строка без символов.
str2 = strings(1,3)
str2 = 1x3 string "" "" ""
Протестируйте если str пустая строка путем сравнения его с пустой строкой.
if (str == "") disp 'str has zero characters' end
str has zero characters
Не используйте isempty функционируйте, чтобы протестировать на пустые строки. Строка с нулевыми символами все еще имеет размер 1 на 1. Однако можно протестировать, если массив строк имеет по крайней мере одну размерность с размером нуля с помощью isempty функция.
Создайте массив пустой строки с помощью strings функция. Чтобы быть пустым массивом, по крайней мере одна размерность должна иметь размер нуля.
str = strings(0,3)
str = 0x3 empty string array
Протестируйте str использование isempty функция.
isempty(str)
ans = logical 1
Протестируйте массив строк на пустые строки. == оператор возвращает логический массив, который одного размера с массивом строк.
str = ["Mercury","","Apollo"]
str = 1x3 string "Mercury" "" "Apollo"
ans = 1x3 logical array 0 1 0
Нахождение пустых строк в других строках
Строки всегда содержат пустую строку как подстроку. На самом деле пустая строка всегда и в запуске и в конце каждой строки. Кроме того, пустая строка всегда находится между любыми двумя последовательными символами в строке.
Создайте строку. Затем протестируйте, если это содержит пустую строку.
str = "Hello, world"; TF = contains(str,"")
TF = logical 1
Протестируйте если str запускается с пустой строки.
TF = startsWith(str,"")
TF = logical 1
Считайте количество символов в str . Затем считайте количество пустых строк в str . count функционируйте считает пустые строки вначале и конец str , и между каждой парой символов. Поэтому, если str имеет N символы, это также имеет N+1 пустые строки.
String. Is Null OrEmpty(String) Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, действительно ли указанная строка является строкой null или пустой строкой («»).
public: static bool IsNullOrEmpty(System::String ^ value);
public static bool IsNullOrEmpty (string value);
public static bool IsNullOrEmpty (string? value);
static member IsNullOrEmpty : string -> bool
Public Shared Function IsNullOrEmpty (value As String) As Boolean
Параметры
Строка для проверки.
Возвращаемое значение
Значение true , если параметр value равен null или пустой строке («»); в противном случае — значение false .
Примеры
В следующем примере рассматриваются три строки и определяется, имеет ли каждая строка значение, является ли пустой строкой или имеет значение null .
using namespace System; String^ Test( String^ s ) < if (String::IsNullOrEmpty(s)) return "is null or empty"; else return String::Format( "(\"\") is neither null nor empty", s ); > int main() < String^ s1 = "abcd"; String^ s2 = ""; String^ s3 = nullptr; Console::WriteLine( "String s1 .", Test( s1 ) ); Console::WriteLine( "String s2 .", Test( s2 ) ); Console::WriteLine( "String s3 .", Test( s3 ) ); > // The example displays the following output: // String s1 ("abcd") is neither null nor empty. // String s2 is null or empty. // String s3 is null or empty.
string s1 = "abcd"; string s2 = ""; string s3 = null; Console.WriteLine("String s1 .", Test(s1)); Console.WriteLine("String s2 .", Test(s2)); Console.WriteLine("String s3 .", Test(s3)); String Test(string s) < if (String.IsNullOrEmpty(s)) return "is null or empty"; else return String.Format("(\"\") is neither null nor empty", s); > // The example displays the following output: // String s1 ("abcd") is neither null nor empty. // String s2 is null or empty. // String s3 is null or empty.
Class Sample Public Shared Sub Main() Dim s1 As String = "abcd" Dim s2 As String = "" Dim s3 As String = Nothing Console.WriteLine("String s1 .", Test(s1)) Console.WriteLine("String s2 .", Test(s2)) Console.WriteLine("String s3 .", Test(s3)) End Sub Public Shared Function Test(s As String) As String If String.IsNullOrEmpty(s) Then Return "is null or empty" Else Return String.Format("("""") is neither null nor empty", s) End If End Function End Class ' The example displays the following output: ' String s1 ("abcd") is neither null nor empty. ' String s2 is null or empty. ' String s3 is null or empty.
let test (s: string): string = if String.IsNullOrEmpty(s) then "is null or empty" else $"(\"\") is neither null nor empty" let s1 = "abcd" let s2 = "" let s3 = null printfn "String s1 %s" (test s1) printfn "String s2 %s" (test s2) printfn "String s2 %s" (test s3) // The example displays the following output: // String s1 ("abcd") is neither null nor empty. // String s2 is null or empty. // String s3 is null or empty.
Комментарии
IsNullOrEmpty — это удобный метод, позволяющий одновременно проверить, является ли String объект или null его значение равно String.Empty. Это эквивалентно следующему коду:
result = s == nullptr || s == String::Empty;
bool TestForNullOrEmpty(string s) < bool result; result = s == null || s == string.Empty; return result; >string s1 = null; string s2 = ""; Console.WriteLine(TestForNullOrEmpty(s1)); Console.WriteLine(TestForNullOrEmpty(s2)); // The example displays the following output: // True // True
result = s Is Nothing OrElse s = String.Empty
let testForNullOrEmpty (s: string): bool = s = null || s = String.Empty let s1 = null let s2 = "" printfn "%b" (testForNullOrEmpty s1) printfn "%b" (testForNullOrEmpty s2) // The example displays the following output: // true // true
Метод можно использовать для IsNullOrWhiteSpace проверки того, является null ли строка , ее значение равно String.Emptyили она состоит только из пробелов.
Что такое строка null?
Строка имеет значение , null если ей не было присвоено значение (в C++ и Visual Basic) или если ей явно присвоено значение null . Хотя функция составного форматирования может корректно обрабатывать строку null, как показано в следующем примере, при попытке вызвать ее, если ее члены вызывают .NullReferenceException
using namespace System; void main() < String^ s; Console::WriteLine("The value of the string is ''", s); try < Console::WriteLine("String length is ", s->Length); > catch (NullReferenceException^ e) < Console::WriteLine(e->Message); > > // The example displays the following output: // The value of the string is '' // Object reference not set to an instance of an object.
String s = null; Console.WriteLine("The value of the string is ''", s); try < Console.WriteLine("String length is ", s.Length); > catch (NullReferenceException e) < Console.WriteLine(e.Message); >// The example displays the following output: // The value of the string is '' // Object reference not set to an instance of an object.
Module Example Public Sub Main() Dim s As String Console.WriteLine("The value of the string is ''", s) Try Console.WriteLine("String length is ", s.Length) Catch e As NullReferenceException Console.WriteLine(e.Message) End Try End Sub End Module ' The example displays the following output: ' The value of the string is '' ' Object reference not set to an instance of an object.
let (s: string) = null printfn "The value of the string is '%s'" s try printfn "String length is %d" s.Length with | :? NullReferenceException as ex -> printfn "%s" ex.Message // The example displays the following output: // The value of the string is '' // Object reference not set to an instance of an object.
Что такое пустая строка?
Строка пуста, если ей явно назначена пустая строка («») или String.Empty. Пустая строка имеет значение Length 0. В следующем примере создается пустая строка и отображается ее значение и длина.
String^ s = ""; Console::WriteLine("The length of '' is .", s, s->Length); // The example displays the following output: // The length of '' is 0.
String s = ""; Console.WriteLine("The length of '' is .", s, s.Length); // The example displays the following output: // The length of '' is 0.
Dim s As String = "" Console.WriteLine("The length of '' is .", s, s.Length) ' The example displays the following output: ' The length of '' is 0.
let s = "" printfn "The length of '%s' is %d." s s.Length // The example displays the following output: // The length of '' is 0.