К какой библиотеке принадлежит strlen ()? Это относится к cstring? или строка?
Ни то, ни другое. cstring
и string
не являются библиотеками , они являются заголовочными файлами , которые определяют интерфейс для различных функций и классов.
Стандарт языка Си говорит, что функция strlen
объявлена в заголовочном файле <string.h>
. В C ++ включение <string.h>
помещает strlen
в глобальное пространство имен, в то время как включение <cstring>
вместо этого помещает strlen
в пространство имен std
.
Фактическая реализация функции функции strlen
находится в стандартной библиотеке C (также известной как libc
или CRT
на некоторых платформах). Обычно это связано с вашим исполняемым файлом во время ссылки.
Почему он работает без включения строки библиотеки или cstring?
В вашем конкретном компиляторе и инструментарии, так получилось, что заголовочный файл <iostream>
включает в себя <cstring>
, Это означает, что любой код, который включает первый, также получает последний бесплатно. Это деталь реализации , на которую нельзя полагаться - если вы скомпилируете свой код с другим компилятором, вы можете внезапно оказаться в море ошибок компилятора.
Надо также включить сюда <cstring>
; даже если это не требуется для вашего конкретного компилятора, это может быть необходимо для других компиляторов.
у вас есть событие PreviewKeyDown , просто подключите его.
private void wb_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
// your code handling the keys here, like:
if (e.Control && e.KeyCode == Keys.C)
{
// Do something funny!
}
}