
19.05.2024, 13:35
|
|
Флудер
Регистрация: 10.08.2017
Сообщений: 2,659
С нами:
4609424
Репутация:
183
|
|
Добавляет пробелы между целыми тысячами, десятью тысячами, и так далее...
C++:
Код:
std
::
string
separate_number
(
auto
number
,
char
separator
=
' '
)
{
static_assert
(
std
::
is_integral_v
,
"only integral values are supported"
)
;
std
::
string ret_number
;
auto
number_str
=
std
::
to_string
(
number
)
;
auto
i
=
0
;
for
(
auto
str_iter
=
number_str
.
rbegin
(
)
;
str_iter
!=
number_str
.
rend
(
)
;
++
str_iter
)
{
auto
next_str_iter
=
str_iter
+
1
;
ret_number
+=
*
str_iter
;
if
(
next_str_iter
!=
number_str
.
rend
(
)
&&
*
next_str_iter
!=
'-'
&&
++
i
==
3
)
{
ret_number
+=
separator
;
i
=
0
;
}
}
std
::
reverse
(
ret_number
.
begin
(
)
,
ret_number
.
end
(
)
)
;
return
ret_number
;
}
Использование:
C++:
[CODE]
std
::
cout
|
|
|