Как найти количество пробелов в строке

Given a string, the task is to write a Python program to count the number of spaces in the string.

Examples:

Input: "my name is geeks for geeks"
Output: number of spaces = 5

Input: "geeksforgeeks"
Output: number of spaces=0

Approach:

  • Input string from the user
  • Initialize count variable with zero
  • Run a for loop i from 0 till the length of the string
  • Inside for loop, check if s[i] == blank, then increment count by 1
  • Outside for loop, print count

Example 1:

Python3

def check_space(string):

    count = 0

    for i in range(0, len(string)):

        if string[i] == " ":

            count += 1

    return count

string = "Welcome to geeksforgeeks"

print("number of spaces ",check_space(string))

Output:

number of spaces  2

Example 2:

Python3

def check_space(string):

    count = 0

    for i in string:

        if i == " ":

            count += 1

    return count

string = "Welcome to geeksforgeeks, Geeks!"

print("number of spaces ",check_space(string))

Output:

number of spaces  3

Example 3: Using the count() function.

Python3

def check_space(Test_string):

    return Test_string.count(" ")

if __name__ == "__main__":

    Test_string = "Welcome to geeksforgeeks, Geeks!"

    print(f"Number of Spaces: {check_space(Test_string)}")

Output: 

Number of Spaces: 3

The time and space complexity for all the methods are the same:

Time Complexity: O(n)

Auxiliary Space: O(n)

Example 4: Using isspace() function in python3

Python3

string = "Welcome to geeksforgeeks"

c=0

for i in string:

    if(i.isspace()):

        c+=1

print("Number of Spaces : "+str(c))

Output

Number of Spaces : 2

Example 5: Using Counter() function

Python3

from collections import Counter

def check_space(string):

    freq = Counter(string)

    return freq[' ']

string = "Welcome to geeksforgeeks"

print("number of spaces ", check_space(string))

Time Complexity: O(n)

Auxiliary Space: O(n)

Example #6: Using operator.countOf() method:

Python3

import operator as op

def check_space(Test_string):

    return op.countOf(Test_string, " ")

if __name__ == "__main__":

    Test_string = "Welcome to geeksforgeeks, Geeks!"

    print(f"Number of Spaces: {check_space(Test_string)}")

Output

Number of Spaces: 3

Time complexity: O(n)
Auxiliary Space: O(1)

Example #7: Using Recursion

Python3

def check_space(string,c,i):

     if i == len(string):

      return c

     if string[i] == " ":

        c+=1

     return check_space(string,c,i+1)

string = "Welcome to geeksforgeeks"

print("number of spaces ", check_space(string,0,0))

Time complexity: O(n)
Auxiliary Space: O(n)

Example #8: Using  reduce(): 

1.Import the reduce function from the functools module.
2.Define a function named “check_space_reduce” that takes a string as input.
3.Within the function, use the reduce function to iterate through the string and count the number of spaces in the string.
4.The reduce function uses a lambda function that takes two arguments: the current count of spaces and the current character in the string. If the 5.current character is a space, the lambda function returns the current count plus 1, otherwise it returns the current count.
6.The reduce function initializes the count to 0 and iterates through the characters in the string, applying the lambda function at each step and 7.returning the final count of spaces.
8.Return the count of spaces from the function.
9.In the main function, define a test string.
10.Call the “check_space_reduce” function with the test string as an argument and store the result in a variable named “spaces”.
11.Print the number of spaces in the test string using an f-string.

Python3

from functools import reduce

def check_space_reduce(Test_string):

    return reduce(lambda x, y: x + (1 if y == " " else 0), Test_string, 0)

if __name__ == "__main__":

    Test_string =  "Welcome to geeksforgeeks"

    print(f"Number of Spaces: {check_space_reduce(Test_string)}")

Output

Number of Spaces: 2

The time complexity : O(n), where n is the length of the input string. This is because the reduce() function iterates through each character in the string exactly once and performs a constant amount of work for each character, and thus the time complexity is linear in the length of the input string.

The space complexity : O(1), as the only space used by the program is a constant amount of memory to store the variable “spaces”, which holds the count of spaces in the string. Since the memory usage does not depend on the size of the input string, the space complexity is constant or O(1). Note that the lambda function used inside the reduce() function does not create any additional data structures or use any additional memory that would affect the space complexity.

Last Updated :
22 Feb, 2023

Like Article

Save Article

Нужно посчитать кол-во пробелов в строке. Не могу понять что и как. Застрял на вводе самой строки. Выводится лишь первое слово.

#include <iostream>
#include <string.h>

using namespace std;

void main() {
    setlocale(LC_ALL, "rus");

    char str[140];

    cout<<"Введите ваш текст:n";
    cin>>str;

    cout<<str<<endl;

    system("pause");
}

Kromster's user avatar

Kromster

13.5k12 золотых знаков43 серебряных знака72 бронзовых знака

задан 22 дек 2013 в 18:11

acidernt's user avatar

aciderntacidernt

2,86212 золотых знаков56 серебряных знаков103 бронзовых знака

9

Используйте std::getline чтобы прочитать всю строку:

#include <iostream>
#include <string>
#include <locale>
#include <algorithm>

int main() {
    std::setlocale(LC_ALL, "");
    std::cout << "Введите ваш текст:n";

    std::string str;
    std::getline(std::cin, str);

    std::cout << std::count(str.begin(), str.end(), ' ') << 'n';
}

ответ дан 21 дек 2015 в 13:23

Abyx's user avatar

orbaki

110 / 1 / 2

Регистрация: 10.12.2015

Сообщений: 93

1

Подсчитать количество пробелов в строке

19.02.2016, 23:22. Показов 12564. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Задание : Вводится строка. Подсчитать количество пробелов в строке.

Не понимаю как мне счетчик завести.

Нужно 2 варианта решения :

  1. Одна программа решает задачу с использованием строк, представленных как массивы символов.
  1. Вторая программа решает задачу с использование строк типа string/

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
 
    string str;
  
    cout << "Enter string : ";
    cin >> str;
 
    int j = strlen(str);
    int spaces = 0;
    for (int i = 0; i < j; ++i)
        if (str[i] == " ")
            spaces++;
 
    cout << "Number of spaces = " << spaces;
    cout << endl;
 
    system("pause");
    return 0;
}



0



nmcf

7525 / 6391 / 2913

Регистрация: 14.04.2014

Сообщений: 27,832

19.02.2016, 23:27

2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
 
    string str;
  
    cout << "Enter string : ";
    cin >> str;
 
    int j = str.length();
    int spaces = 0;
    for (int i = 0; i < j; ++i)
        if (str[i] == ' ')
            spaces++;
 
    cout << "Number of spaces = " << spaces;
    cout << endl;
 
    system("pause");
    return 0;
}



1



S_el

2434 / 1834 / 404

Регистрация: 15.12.2013

Сообщений: 8,195

19.02.2016, 23:34

3

orbaki, почему вы не пользуетесь стандартными средствами?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
 
int main() {
    std::string str;
    std::size_t count=0;
    std::getline(std::cin,str);
    const char * pstr = str.c_str();
    std::cout<<std::count(str.begin(),str.end(),' ')<<"t";
 
    while ((pstr=strchr(pstr+1,' '))!=NULL)
        count++;
 
    std::cout<<count<<std::endl;
    return 0;
}

http://ideone.com/GiGWQh

Добавлено через 1 минуту
nmcf, std::cin считает строку ДО пробельного символа.



2



7525 / 6391 / 2913

Регистрация: 14.04.2014

Сообщений: 27,832

19.02.2016, 23:48

4

Цитата
Сообщение от S_el
Посмотреть сообщение

std::cin считает строку ДО пробельного символа

Пропустил.



0



110 / 1 / 2

Регистрация: 10.12.2015

Сообщений: 93

20.02.2016, 00:42

 [ТС]

5

я просто не понимаю ваш стилб зачем каждый раз писать std если есть using namespace std



0



2434 / 1834 / 404

Регистрация: 15.12.2013

Сообщений: 8,195

20.02.2016, 00:45

6

Цитата
Сообщение от orbaki
Посмотреть сообщение

я просто не понимаю ваш стилб зачем каждый раз писать std если есть using namespace std

чтобы однозначно понимать с чем имеешь дело.



0



Модератор

Эксперт CЭксперт С++

5148 / 2327 / 339

Регистрация: 20.02.2013

Сообщений: 5,718

Записей в блоге: 20

21.02.2016, 18:07

7



0



2833 / 1642 / 254

Регистрация: 03.12.2007

Сообщений: 4,222

21.02.2016, 19:07

8

Вообще говоря, я тоже не понимаю, почему бы в таком коде не написать using namespace. Всему своё место и время. А то, может быть, тогда ещё документацию написать, тесты сделать? А где ТЗ вообще?..



1



Модератор

Эксперт CЭксперт С++

5148 / 2327 / 339

Регистрация: 20.02.2013

Сообщений: 5,718

Записей в блоге: 20

21.02.2016, 20:16

9

Somebody, есть просто хорошие привычки, которые лучше сразу вырабатывать.



0



Croessmah

22.02.2016, 00:57


    Подсчитать количество пробелов в строке

Не по теме:

Цитата
Сообщение от Somebody
Посмотреть сообщение

Вообще говоря, я тоже не понимаю, почему бы в таком коде не написать using namespace.

«Вообще говоря, не понимаем, зачем в такой стране хороший автопром» (c) Инженеры ОАО «АВТОВАЗ»



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

22.02.2016, 00:57

Подсчитать наибольшее количество идущих подряд пробелов в строке
Здраствуйте, помогите написать код к такой задаче:
Дана строка символов S.
а) Подсчитать…

Подсчитать в строке количество гласных, согласных, знаков препинания, пробелов
Подсчитать в строке количество гласных, согласных, знаков препинания, пробелов, общее количество…

Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов)
Написать программу, в которой с клавиатуры вводится строка символов. Подсчитать количество слов в…

Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове
Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке….

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).

Подсчитать количество двойных пробелов
Получить от пользователя строку текста и подсчитать количество двойных пробелов. Вывести полученное…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

10

Python предлагает несколько эффективных и простых в использовании способов посчитать количество пробелов в строке. В этой статье мы рассмотрим различные подходы и представим примеры кода для каждого из них.

Метод count()

Один из наиболее прямых способов подсчета пробелов в строке — использование встроенного метода count(). Этот метод принимает подстроку в качестве аргумента и возвращает количество вхождений этой подстроки в строку.

s = "Пример строки с несколькими пробелами."
print(s.count(' '))

#4

В этом примере метод count() ищет пробелы (‘ ‘) в строке s и возвращает их количество.

Использование цикла for

Если вы не хотите использовать встроенные методы, можно использовать цикл for для прохода по всем символам строки и подсчета пробелов.

s = "Пример строки с несколькими пробелами."
spaces = 0
for char in s:
    if char == ' ':
        spaces += 1
print(spaces)

#4

В этом примере мы проходим через каждый символ в строке s, и каждый раз, когда встречаем пробел, увеличиваем счетчик spaces.

Использование генераторов списков

Генераторы списков — это удобный инструмент Python, который позволяет создавать списки на лету. Они могут быть использованы для подсчета пробелов в строке.

s = "Пример строки с несколькими пробелами."
spaces = sum([1 for char in s if char == ' '])
print(spaces)

#4

Здесь генератор списка создает список, содержащий 1 для каждого пробела в строке. Функция sum() затем суммирует все единицы в списке, что дает общее количество пробелов.

Использование метода split()

Еще один способ подсчета пробелов в строке — использование метода split(). Этот метод разбивает строку на подстроки, используя пробелы в качестве разделителей, и возвращает список этих подстрок.

s = "Пример строки с несколькими пробелами."
spaces = len(s.split()) - 1
print(spaces)

#4

Метод split() возвращает список подстрок, поэтому количество пробелов равно количеству подстрок минус 1.

Заключение

Работа со строками является общей задачей при программировании на Python, и подсчет пробелов в строке — это только одна из многих операций, которые можно выполнить. Python предлагает множество инструментов и методов для эффективной работы со строками, и надеюсь, что примеры в этой статье помогут вам использовать эти инструменты более эффективно.

Обзор PHP-функций для работы со строками и практическое их применение с учетом кодировки UTF-8.

1

Количество символов

Получить длину строки

Функция strlen($string) возвращает длину строки, но возвращает неправильный результат если в строке есть кириллица в UTF-8, поэтому нужно использовать mb_strlen().

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';

echo strlen($text); // 105
echo mb_strlen($text); // 59

PHP

Количество символов без пробелов

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = mb_ereg_replace('[s]', '', $text);
echo mb_strlen($str); // 49

PHP

Количество слов с строке

Функция str_word_count() возвращает количество слов в строке, но символы обрамленные пробелами будет считаться за слово, например « — ». Так же функция не работает с UTF-8, как видно в примере:

$text = 'Lorem Ipsum - is simply dummy!';
echo str_word_count($text); // 6

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo str_word_count($text); // 1

PHP

Рабочий вариант:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = preg_replace("/[[:punct:]]/", '', $text);
$str = mb_ereg_replace('[s]+', ' ', $str);
$words = explode(' ', $str);
echo count($words); // 10

PHP

Получить количество переносов в строке

$text = 'Съешь ещё - этих 
мягких французских булок, 
да выпей же чаю.';

echo substr_count($text, PHP_EOL); // 2

PHP

Количество букв в строке

$text = 'Съешь ещё этих мягких французских булок, да выпей же чаю.';
echo $str = preg_replace('/[^a-zа-яё]/ui', '', $text);
echo mb_strlen($str); // 46

PHP

Количество цифр в строке

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = preg_replace('/[^0-9]/ui', '', $text);
echo mb_strlen($str); // 0

PHP

Количество знаков препинания

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = preg_replace("/[^[:punct:]]/", '', $text);
echo mb_strlen($str); // 3

PHP

Количество пробелов в строке

Или количество вхождений любого другого символа или подстроки.

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo substr_count($text, ' '); // 10

PHP

Количество пробелов в начале строки:

$text = '     Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_strlen($text) - mb_strlen(ltrim($text, ' ')); // 5

PHP

Количество пробелов в конце строки:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.   ';
echo mb_strlen($text) - mb_strlen(rtrim($text, ' ')); // 3

PHP

2

Поиск

Получить количество вхождений подстроки

$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';
echo mb_substr_count($text, 'ещё'); // 2

PHP

Найти позицию первого вхождения подстроки

$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';
echo mb_strpos($text, 'ещё'); // 6

// Без учета регистра:
$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';
echo mb_stripos($text, 'ещё'); // 6

PHP

Найти позицию последнего вхождения подстроки

$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';
echo mb_strrpos($text, 'ещё'); // 46

// Без учета регистра:
$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';
echo mb_strirpos($text, 'ещё'); // 46

PHP

Найти все вхождения подстроки

$text = 'Съешь ещё - этих мягких французских булок, да ещё выпей же чаю.';

$offset = 0;
$allpos = array();
while (($pos = mb_strpos($text, 'ещё', $offset)) !== false) {
	$offset   = $pos + 1;
	$allpos[] = $pos;
}

print_r($allpos); // Array ([0] => 6 [1] => 46)

PHP

3

Извлечение из текста

Начало строки

Получить первый символ:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_substr($text, 0, 1); // С

PHP

Получить три первых символа:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_substr($text, 0, 3); // Съе

PHP

Получить первое слово:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_strstr($text, ' ', true); // Съешь

PHP

Получить все после первого слова:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_strstr($text, ' ', false); // ещё - этих мягких французских булок, да выпей же чаю.

PHP

Конец строки

Получить последний символ:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_substr($text, -1, 1); // .

PHP

Получить три последних символа:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_substr($text, -1, 3); // аю.

PHP

Получить последнее слово:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$array = explode(' ', $text);
echo end($array); // чаю.

PHP

Получить всё до последнего слова:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = mb_substr($text, 0, mb_strrpos($text, ' '));
echo $str; // Съешь ещё - этих мягких французских булок, да выпей же

PHP

Середина строки

Получить второе слово:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$array = explode(' ', $text);
echo $array[1]; // ещё

PHP

Получить текст до дефиса:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
echo mb_substr($text, 0, mb_strpos($text, ' - ')); // Съешь ещё

PHP

Получить текст после дефиса:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$str = mb_substr($text, mb_strpos($text, ' - ') + mb_strlen(' - '), -1);
echo $str; // этих мягких французских булок, да выпей же чаю

PHP

Переносы строк

Получить первую строку:

$text = 'Разнообразный опыт укрепление и развитие структуры требуют 
определения направлений прогрессивного развития! Не следует забывать, 
что постоянный рост и сфера активности в  степени обуславливает создание 
системы обучения кадров? С другой стороны дальнейшее развитие различных 
форм влечет за собой процесс внедрения и модернизации.';

$pos = mb_strpos($text, "n");
$str = trim(mb_substr($text, 0, $pos));
echo $str; // Разнообразный опыт укрепление и развитие структуры требуют 

// или
$lines = explode("n", $text);
echo $lines[0]; // Разнообразный опыт укрепление и развитие структуры требуют 

PHP

Получить последнюю строку:

$text = 'Разнообразный опыт укрепление и развитие структуры требуют 
определения направлений прогрессивного развития! Не следует забывать, 
что постоянный рост и сфера активности в  степени обуславливает создание 
системы обучения кадров? С другой стороны дальнейшее развитие различных 
форм влечет за собой процесс внедрения и модернизации.';

$pos = mb_strrpos($text, "n");
$str = trim(mb_substr($text, $pos));
echo $str; // форм влечет за собой процесс внедрения и модернизации.

// или
$lines = explode("n", $text);
echo end($lines); // форм влечет за собой процесс внедрения и модернизации.

PHP

Пилучить символы из ковычек и скобок

$text = ''Съешь' "ещё" «этих» [мягких] (французских) {булок} <да>';

// '...'
preg_match_all("/'(.+?)'/", $text, $matches);
echo $matches[1][0]; // Съешь

// "..."
preg_match_all("/"(.+?)"/", $text, $matches);
echo $matches[1][0]; // ещё

// «...»
preg_match_all("/«(.+?)»/", $text, $matches);
echo $matches[1][0]; // этих

// [...]
preg_match_all("/[(.+?)]/", $text, $matches);
echo $matches[1][0]; // мягких

// (...)
preg_match_all("/((.+?))/", $text, $matches);
echo $matches[1][0]; // французских

// {...}
preg_match_all("/{(.+?)}/", $text, $matches);
echo $matches[1][0]; // булок

// <...>
preg_match_all("/<(.+?)>/", $text, $matches);
echo $matches[1][0]; // да

PHP

4

Замена в строках

Функция substr_replace($search, $replace, $subject, $count) – заменяет часть строки, также не раотает с кирилицей в кодировке UTF-8, в библиатеке mb_string её нет, поэтому приходится использовать пользовольскую функцию:

if (!function_exists('mb_substr_replace')) {
	function mb_substr_replace($original, $replacement, $position, $length)
	{
		$startString = mb_substr($original, 0, $position, 'UTF-8');
		$endString = mb_substr($original, $position + $length, mb_strlen($original), 'UTF-8');
		$out = $startString . $replacement . $endString;
		return $out;
	}
}

PHP

Заменить первый символ:

$text = 'Съешь ещё - этих мягких французских булок.';
echo mb_substr_replace($text, '!', 0, 1); // !ъешь ещё - этих мягких французских булок.

PHP

Заменить три первых символа:

$text = 'Съешь ещё - этих мягких французских булок.';
echo mb_substr_replace($text, '!!!', 0, 3); // !!!шь ещё - этих мягких французских булок.

PHP

Заменить последний символ:

$text = 'Съешь ещё - этих мягких французских булок.';
echo mb_substr_replace($text, '!', -1, 0); // Съешь ещё - этих мягких французских булок!

PHP

Заменить три последних символа:

$text = 'Съешь ещё - этих мягких французских булок.';
echo mb_substr_replace($text, '!!!', -3, 0); // Съешь ещё - этих мягких французских бул!!!

PHP

Замена символов и слов в строке

Для этой задачи подходит функция str_replace($search, $replace, $subject), которая работает со всеми кодировками.

Заменить пробелы:

$text = 'Съешь ещё - этих мягких французских булок.';
echo str_replace(' ', '-', $text); // Съешь-ещё---этих-мягких-французских-булок.

PHP

Заменить слово:

$text = 'Съешь ещё - этих мягких французских булок.';
echo str_replace('мягких', 'твердых', $text); // Съешь ещё - этих твердых французских булок.

PHP

Заменить всё до дефиса:

$text = 'Съешь ещё - этих мягких французских булок.';

$str = 'Не ешь' . mb_substr($text, mb_strpos($text, ' - '), -1);
echo $str; // Не ешь - этих мягких французских булок

PHP

Заменить всё после дефиса:

$text = 'Съешь ещё - этих мягких французских булок.';

$str = mb_substr($text, 0, mb_strpos($text, ' - ') + 3) . 'печенек';
echo $str; // Съешь ещё - печенек

PHP

5

Добавление в строки

Добавить строку после 10-го символа:

$text = 'Съешь ещё - этих мягких французских булок.';

$str = mb_substr_replace($text, '!!!', 10, 0);
echo $str; // Съешь ещё !!!- этих мягких французских булок.

PHP

Добавить перед словом:

$text = 'Съешь ещё - этих мягких французских булок.';

$str = str_replace(' ещё ', ' же ещё ', $text); 
echo $str; // Съешь же ещё - этих мягких французских булок.

PHP

Добавить после слова:

$text = 'Съешь ещё - этих мягких французских булок.';
$str = str_replace(' ещё ', ' ещё немного ', $text); 
echo $str; // Съешь ещё немного - этих мягких французских булок.

PHP

Вставить строку между всех символов

Для того чтобы вставить символ между всех символов в строке понадобится функция str_split($string) для пробразавания строки в массив, она также не работает с кирилицей. С версии PHP 7.4 появилась функция mb_str_split(), для более ранних версий:

if (!function_exists('mb_str_split')) {
	function mb_str_split($str, $l = 0) {
		if ($l > 0) {
			$ret = array();
			$len = mb_strlen($str, "UTF-8");
			for ($i = 0; $i < $len; $i += $l) {
				$ret[] = mb_substr($str, $i, $l, "UTF-8");
			}
			return $ret;
		}
		return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
	}
}

PHP

$text = 'Съешь ещё - этих мягких французских булок.';

$array = mb_str_split($text);;
$new = implode(' ', $array);
echo $new; // С ъ е ш ь   е щ ё   -   э т и х   м я г к и х   ф р а н ц у з с к и х   б у л о к .

PHP

Дописать строку до нужной длины

Функция str_pad($string, $length, $pad_string, $pad_type) дополняет строку другой строкой до заданной длины.

Версия функции для UTF-8:

if (!function_exists('mb_str_pad')) {
	function mb_str_pad($input, $pad_length, $pad_string = ' ', $pad_type = STR_PAD_RIGHT)
	{
		$diff = strlen($input) - mb_strlen($input);
		return str_pad($input, $pad_length + $diff, $pad_string, $pad_type);
	}
}

PHP

Дописать стркуку слева:

$text = 'Привет Мир';
echo mb_str_pad($text,  20, '-', STR_PAD_LEFT); // ----------Привет Мир

PHP

Дописать строку справа:

$text = 'Привет Мир';
echo mb_str_pad($text,  20, '-', STR_PAD_RIGHT); // Привет Мир----------

PHP

Дописать строку с обеих сторон:

$text = 'Привет Мир';
echo mb_str_pad($text,  20, '-', STR_PAD_BOTH); // -----Привет Мир-----

PHP

6

Удаление из строк

Удаление в начале строки

Удалить первый символ:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, 1);
echo $new; // ъешь ещё - этих мягких французских булок, да выпей же чаю.

PHP

Удалить первые 3 символа:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, 3);
echo $new; // шь ещё - этих мягких французских булок, да выпей же чаю.

PHP

Удалить первое слово:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, mb_strpos($text, ' '));
echo $new; // ещё - этих мягких французских булок, да выпей же чаю.

PHP

Удаление в конце строки

Удалить последний символ:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, 0, -1);
echo $new; // Съешь ещё - этих мягких французских булок, да выпей же чаю

PHP

Удалить три последних символа:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, 0, -3);
echo $new; // Съешь ещё - этих мягких французских булок, да выпей же ч

PHP

Удалить последнее слово:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = mb_substr($text, 0, mb_strrpos($text, ' '));
echo $new; // Съешь ещё - этих мягких французских булок, да выпей же

PHP

Удаление подсторк

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = str_replace(' мягких', '', $text);
echo $new; // Съешь ещё - этих французских булок, да выпей же чаю.

PHP

Удалить всё перед сиволом:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = strstr($text, '-'); 
echo $new; // - этих мягких французских булок, да выпей же чаю.

PHP

Удалить всё после сивола:

$text = 'Съешь ещё - этих мягких французских булок, да выпей же чаю.';
$new = strstr($text, '-', true); 
echo $new; // Съешь ещё

// Второй вариант:
$pos = mb_strpos($text, '-');
$new = mb_substr($text, 0, $pos + 1);
echo $new; // Съешь ещё -

PHP

Понравилась статья? Поделить с друзьями:
  • Mathcad как найти производную функции
  • Как найти свою половинку после развода
  • Как найти глубину водоема формула
  • Как найти авто по спутнику
  • Как найти музыку с кассеты