Измените число 3
на число 20
ниже, чтобы получить первые 20 слов или передать его как параметр. Ниже показано, как получить первые 3 слова: (поэтому измените значение 3
на 20
, чтобы изменить значение по умолчанию):
function first3words($s, $limit=3) {
return preg_replace('/((\w+\W*){'.($limit-1).'}(\w+))(.*)/', '${1}', $s);
}
var_dump(first3words("hello yes, world wah ha ha")); # => "hello yes, world"
var_dump(first3words("hello yes,world wah ha ha")); # => "hello yes,world"
var_dump(first3words("hello yes world wah ha ha")); # => "hello yes world"
var_dump(first3words("hello yes world")); # => "hello yes world"
var_dump(first3words("hello yes world.")); # => "hello yes world"
var_dump(first3words("hello yes")); # => "hello yes"
var_dump(first3words("hello")); # => "hello"
var_dump(first3words("a")); # => "a"
var_dump(first3words("")); # => ""
По какой причине вы хотите использовать союз? Союзы отлично подходят для сохранения памяти. В С ++ редко возникает необходимость их использования. Я знаю, что это не ответ на ваш вопрос, но подумайте, нужно ли вам использовать их в этом проекте.
При инициализации объединения будет инициализирован только первый член. Переставьте объединение так, чтобы float real
стал первым членом объединения.
Конечно, это означает, что вы не можете использовать других участников в прямой инициализации.
Другое решение заключается в добавлении конструктора в объединение, например, один для члена real
, один для члена string
и один для члена pointer
.