Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/96: Рейтинг темы: голосов - 96, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 27.02.2016
Сообщений: 4

Определить длину строки

27.02.2016, 10:14. Показов 19656. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеем такую команду:
Windows Batch file
1
set string=%RANDOM%
В этой команде нужно определить длину получившийся строчки,то есть %RANDOM%.
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2016, 10:14
Ответы с готовыми решениями:

Необходимо определить длину каждой строки, определить сколько символив первой и второй строки совпадают
Приветик всем)) Очень нужна помощь. Помогите решить некоторые задачи. 1. Пускай мы имеем массив 5 на 5. Необходимо отсортировать...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках.
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши "Ввод". Программа должна определить длину...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

11
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
27.02.2016, 10:33
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion
 
set in=%random%
set n=1
 
for /l %%a in (1,1,10) do (
set num=!in:~%%a!
if defined num set /a n+=1
)
echo %in% - !n!
 
pause
exit
2
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
27.02.2016, 14:35
Подкину и свой вариант, здесь без ограничений:
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
setlocal enabledelayedexpansion
set "string=Очень длинная строка"
set "n=1"
:pv
for %%a in ("!string:~0,-%n%!") do set /a "n+=1" & if not "%string:~0,1%"=="%%~a" goto pv
echo Длина строки равна: %n% символов
pause>nul
.
1
⁞ ★☭ Mad Max ☭★ ⁞
279 / 84 / 12
Регистрация: 04.09.2013
Сообщений: 187
27.02.2016, 20:06
Цитата Сообщение от alpap Посмотреть сообщение
здесь без ограничений
Windows Batch file
1
set "string=1 >>>32 lnsdfn lskd &&&&&     _----__\\\\|||sd72 *&&&@@######~~~~~362 232 83827 3n238237"
Длина строки равна: 1 символов
для вашего примера


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off
setLocal EnableExtensions EnableDelayedExpansion
        set string=%RANDOM%
    set "$string1=132 sd72 362 232 83827 3n238237"
    set "$string2=1 >>>32 lnsdfn lskd &&&&&     _----__\\\\|||sd72 *&&&@@######~~~~~362 232 83827 3n238237"
 
::
        call:strLen "%string%"
        echo Длина строки RANDOM - [%strLen%]
        call:strLen "%$string1%"
        echo Длина строки 1 - [%strLen%]
        call:strLen "%$string2%"
        echo Длина строки 2 - [%strLen%]
        
endlocal
pause
exit /b 0
 
:strLen [Строка]
:: strLen - функция, в качестве параметра принимает строку
:: Возвращаемое значение хранится в переменной strLen
setLocal EnableExtensions EnableDelayedExpansion
set $Out=%~0
set "$a=%~1"
    set "str=A!$a!"
    set "len=0"
    for /l %%a in (12,-1,0) do (
        set /a "len|=1<<%%a"
        for %%b in (!len!) do if "!str:~%%b,1!"=="" set /a "len&=~1<<%%a"
    )
endlocal & set %$Out:~1%=%len%
exit /b 0
1
27.02.2016, 21:40

Не по теме:

@Root, Имелось ввиду ограничение на кол-во символов, а не "разные инопланетные символы":)

0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.02.2016, 01:02
Лучший ответ Сообщение было отмечено 800gen как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
 
set "s=Моя строка!"
 
for /f %%i in ('">$ cmd/v/c echo.!s!& echo $"') do set/a l=%%~zi-2& del $
 
echo %l%
 
pause>nul
5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.02.2016, 20:43
alpap, там они не просто так, а для оценки стойкости алгоритма на предмет различных спецсимволов, которые могут сломать выполнение скрипта в реальных условиях.
1
0 / 7 / 0
Регистрация: 28.12.2021
Сообщений: 22
31.12.2021, 14:50
Здравствуйте! Спасибо за ответ на эту интересную для меня тему!
А подскажите пожалуйста! Как сделать так, чтобы можно было в одну переменную записать длину строки-1 а в другую отрезать -первая переменная от конца строки?
Т. Е. ...
Windows Batch file
1
2
3
4
5
6
7
set "s=Моя строка!"
 
for /f %%i in ('">$ cmd/v/c echo.!s!& echo $"') do set/a l=%%~zi-2& del $
 
set /a b=%l%-1
 
echo %s:~0,-%b% %
Просто я пытался так сделать, но у меня выводилось друге значение (ошибочное)!

Добавлено через 58 секунд
Цитата Сообщение от Dragokas Посмотреть сообщение
alpap, там они не просто так, а для оценки стойкости алгоритма на предмет различных спецсимволов, которые могут сломать выполнение скрипта в реальных условиях.
Здравствуйте! Спасибо за ответ на эту интересную для меня тему!
А подскажите пожалуйста! Как сделать так, чтобы можно было в одну переменную записать длину строки-1 а в другую отрезать -первая переменная от конца строки?
Т. Е. ...
Windows Batch file
1
2
3
4
5
6
7
set "s=Моя строка!"
 
for /f %%i in ('">$ cmd/v/c echo.!s!& echo $"') do set/a l=%%~zi-2& del $
 
set /a b=%l%-1
 
echo %s:~0,-%b% %
Просто я пытался так сделать, но у меня выводилось друге значение (ошибочное)!
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,766
31.12.2021, 17:06
VECR, так что ли?
Windows Batch file
1
2
3
4
5
6
7
@echo off&setlocal enabledelayedexpansion&chcp 1251>nul
set "n=Моя строка!"
set "s=рока!"
 
for /f %%i in ('">$ echo.!s!& echo $"') do set/a l=%%~zi-2& del $
echo !n:~,-%l%!
pause>nul
Не проще без подсчёта длины по какому-то невстречаемому символу в концы воткнуть?
Windows Batch file
1
2
3
4
5
@setlocal enabledelayedexpansion&chcp 1251>nul
@set "n=Моя строка!*"
@set "s=рока!*"
@echo !n:%s%=!
@pause>nul
1
0 / 7 / 0
Регистрация: 28.12.2021
Сообщений: 22
31.12.2021, 18:35
Цитата Сообщение от FlasherX Посмотреть сообщение
VECR, так что ли?
Windows Batch file
1
2
3
4
5
6
7
@echo off&setlocal enabledelayedexpansion&chcp 1251>nul
set "n=Моя строка!"
set "s=рока!"
 
for /f %%i in ('">$ echo.!s!& echo $"') do set/a l=%%~zi-2& del $
echo !n:~,-%l%!
pause>nul
Не проще без подсчёта длины по какому-то невстречаемому символу в концы воткнуть?
Windows Batch file
1
2
3
4
5
@setlocal enabledelayedexpansion&chcp 1251>nul
@set "n=Моя строка!*"
@set "s=рока!*"
@echo !n:%s%=!
@pause>nul
А можно вас еще попросить?
Мне надо из переменной !code:~,-%b%! или !code:%b%=! сделать переменную %codeIf%

Поможете?

Просто я пытался сделать так:
Windows Batch file
1
2
3
set codeIf=!code:~,-%b%!
::Или
set codeIf=!code:%b%=!
Но у меня это не получилось!

Заранее спасибо!
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,766
31.12.2021, 19:08
Цитата Сообщение от VECR Посмотреть сообщение
Но у меня это не получилось!
Всё выражение после set надо брать в кавычки.
1
0 / 7 / 0
Регистрация: 28.12.2021
Сообщений: 22
31.12.2021, 20:46
Цитата Сообщение от FlasherX Посмотреть сообщение
Всё выражение после set надо брать в кавычки.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.12.2021, 20:46
Помогаю со студенческими работами здесь

Удалить заданную часть строки и определить длину полученной строки
Дана строкой длиной до 40 символов. Используя функции по работе с символьными переменными, удалить часть строки и определить длину...

Строки. Определить длину введенной строки L, и если длина L<10, то выделяется подстрока в () скобках
Помогите пожалуйста. 6.1 Ввести с клавиатуры строку символов. Признак окончания ввода строки - нажатие клавиши &quot;Ввод&quot;....

Определить длину строки,удалить из строки все символы, которые равны заданному
Доброго времени суток уважаемые форумчане. Помогите пожалуйста с написанием кода для данной задачи в вижуале. Если будет возможно,то с...

Строки. Определить длину строки, содержится ли в ней слово «мир», является ли строка перевертышем
Вводится произвольная строка символов. Определить 1)количество символов данной строки; 2)содержится или нет в данной строке слово...

Строки. Определить длину строки, слова, количество гласных
Дан текст. Определить длину каждой строки; длину максимального слова в строке; количество гласных букв в строке. для данной программы...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru