返回列表 发帖
回复 3# pcl_test


    用 [char[]] 好像也行:[char[]]'bBAathToHOMmEe' ...

TOP

@for %%a in (a-z A-Z) do @echo aAbBdD | grep -o [%%a] | gawk "ORS=s;1"COPY
1

评分人数

TOP

本帖最后由 523066680 于 2017-4-15 10:57 编辑

回复 24# happy886rr


    Matrix67我知道,还买了他的第一版书作为支持。现在他博客上有很多更新文章还未看,忙于工作和重新补习不同语言的语法(糖)。
[url=][/url]

TOP

回复 6# 一年前挖下的坑
来自1年之后的填坑:
;Code By 老刘
;编译环境:MASM32 SDK
;编译指令:ml /coff 字母按大小写归并.ASM /link /subsystem:console
;调用方法:CMD传参,参数1为要处理的字符串。
;其他:非大小写字母的字符将被丢弃;传入字符串长度最长为126字符。
Include Masm32rt.INC
.Data?
Arg db 128 dup (?)
UpperCaseString db 128 dup (?)
LowerCaseString db 128 dup (?)
NewString db 128 dup (?)
.Code
Start:
Invoke ArgClC,1,Offset Arg
.If Eax == 1
Mov Esi,Offset Arg
Mov Ecx,Offset LowerCaseString
Mov Edx,Offset UpperCaseString
.While Al != 0 ;分割为两个字符串
LodSB
.If Al >= 41h && Al <= 5Ah
Mov Byte Ptr [Edx],Al
Inc Edx
.ElseIf Al >= 61h && Al <= 7Ah
Mov Byte Ptr [Ecx],Al
Inc Ecx
.EndIf
.EndW
;合并到同一个字符串中。
Mov Edi,Offset NewString
;处理小写字符串
Sub Ecx,Offset LowerCaseString
Mov Esi,Offset LowerCaseString
Rep MovSB
;处理大写字符串
Sub Edx,Offset UpperCaseString
Mov Ecx,Edx
Mov Esi,Offset UpperCaseString
Rep MovSB
;字符串结尾
Mov Al,0Ah
StoSB
Xor EAX,EAX
StoSB
;回显字符串
Invoke StdOut,Offset NewString
.EndIf
Invoke ExitProcess,NULL
End Start
EndCOPY
1

评分人数

TOP

回复 3# pcl_test


    思维敏捷
我就是我,不一样的烟火!

TOP

本帖最后由 happy886rr 于 2018-9-3 21:29 编辑

回复 34# 老刘1号
技术有长进,我都改行了,不再写任何代码。

TOP

@echo off
set "str=bBAathToHOMmEe"
echo;%str%>%temp%\$
sed "s/[A-Z]//g" %temp%\$
sed "s/[a-z]//g" %temp%\$
del %temp%\$COPY
@echo off
set "str=bBAathToHOMmEe"
:lp
set "ch=%str:~,1%"
for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,e,s,t,u,v,w,x,y,z) do (
if "%%a"=="%ch%" (set "LowerCASE=%LowerCASE%%%a")
)
for %%a in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
if "%%a"=="%ch%" (set "UperCASE=%UperCASE%%%a")
)
set "str=%str:~1%"
if "%str%" neq "" goto :lp
echo;%LowerCASE%%UperCASE%COPY
QQ 33892006

TOP

回复 36# happy886rr


    感谢大佬支持,
大佬改行实在是可惜啊……
为啥突然不搞了呢?

TOP

用纯perl试试
#!perl
my $test = 'bBAathToHOMmEe';
print sort { ( $b cmp '^' ) <=> ( $a cmp '^' ) } split '', $test;COPY
1

评分人数

New BEE

TOP

只要能实现这种效果就行。
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
char* classify (char*);
int main (){
    char *test = "bBAathToHOMmEe";
    char *clas = classify(test);
    puts(clas);
}
# define new(T, N) malloc ((N) *sizeof(T))
char* classify(char *test){
    int len   = strlen (test);
    char *ret = new(char, len + 1);
    ret[len]  = 0;
    int i = 0, j = len - 1;
    for (char *a = test, *b = test + j; i <= j; a++, b--) {
        if (*a >= 'a') ret[i++] = *a;
        if (*b <  'a') ret[j--] = *b;
    }
    return ret;
}COPY
1

评分人数

New BEE

TOP

回复 36# happy886rr


    啊?改行了?

TOP

回复 36# happy886rr

    才看到你说改行,好奇现在做什么了?业余也不写代码了吗
[url=][/url]

TOP

返回列表