0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Иногда на собеседованиях задают такую задачку:</p>
1
<p>Иногда на собеседованиях задают такую задачку:</p>
2
<blockquote><p><em>Возьмите строку текста и сделайте заглавной первую букву каждого слова. В ответ на все хитрые вопросы в духе "А есть ли в строке знаки препинания?" выбирайте самый простой случай для обработки.</em></p>
2
<blockquote><p><em>Возьмите строку текста и сделайте заглавной первую букву каждого слова. В ответ на все хитрые вопросы в духе "А есть ли в строке знаки препинания?" выбирайте самый простой случай для обработки.</em></p>
3
</blockquote><p>Решить эту задачу можно множеством способов - чем больше назовете, тем лучше. Есть как минимум три варианта:</p>
3
</blockquote><p>Решить эту задачу можно множеством способов - чем больше назовете, тем лучше. Есть как минимум три варианта:</p>
4
<ol><li>Посимвольный перебор строки. Есть два способа перебора, в том числе конечные автоматы, которые мы рассмотрим в отдельном курсе</li>
4
<ol><li>Посимвольный перебор строки. Есть два способа перебора, в том числе конечные автоматы, которые мы рассмотрим в отдельном курсе</li>
5
<li>Регулярные выражения, о них тоже есть отдельный курс</li>
5
<li>Регулярные выражения, о них тоже есть отдельный курс</li>
6
<li>Преобразование строки в массив слов</li>
6
<li>Преобразование строки в массив слов</li>
7
</ol><p>Рассмотрим последний способ. Первым делом нужно превратить строку в массив. Для этого мы воспользуемся функцией explode(), которая разделяет строку, используя указанный разделитель. В нашем случае разделитель - это пробел:</p>
7
</ol><p>Рассмотрим последний способ. Первым делом нужно превратить строку в массив. Для этого мы воспользуемся функцией explode(), которая разделяет строку, используя указанный разделитель. В нашем случае разделитель - это пробел:</p>
8
<p>Теперь можно использовать цикл и выполнить операцию<em>capitalize</em>, то есть привести первую букву каждого слова к верхнему регистру:</p>
8
<p>Теперь можно использовать цикл и выполнить операцию<em>capitalize</em>, то есть привести первую букву каждого слова к верхнему регистру:</p>
9
<p>Последнее действие обратно первому - нужно соединить слова и вернуть получившуюся строку наружу. Чтобы соединить элементы массива, воспользуемся функцией implode(). Как и explode(), она принимает на вход разделитель, который теперь используется для сборки строки:</p>
9
<p>Последнее действие обратно первому - нужно соединить слова и вернуть получившуюся строку наружу. Чтобы соединить элементы массива, воспользуемся функцией implode(). Как и explode(), она принимает на вход разделитель, который теперь используется для сборки строки:</p>
10
<p>Если строку нужно разбить по символам, а не по словам, можно воспользоваться функцией<a>mb_str_split()</a>:</p>
10
<p>Если строку нужно разбить по символам, а не по словам, можно воспользоваться функцией<a>mb_str_split()</a>:</p>
11
<p>Функция mb_str_split() принимает второй параметр, в котором можно указать количество символов в каждой группе (в каждом элементе получившегося массива). Значение по умолчанию равно единице, поэтому мы получаем массив, в котором каждый элемент - это один символ. Например, если мы захотим указать число 3, то в каждом элементе массива будет по три символа:</p>
11
<p>Функция mb_str_split() принимает второй параметр, в котором можно указать количество символов в каждой группе (в каждом элементе получившегося массива). Значение по умолчанию равно единице, поэтому мы получаем массив, в котором каждый элемент - это один символ. Например, если мы захотим указать число 3, то в каждом элементе массива будет по три символа:</p>
12
12