比如说我的字符'abcdefghijk' 怎么能把这些转换成
'AbcdEfghiJk'这样,随机转换,几个大写,几个小谢这种
'AbcdEfghiJk'这样,随机转换,几个大写,几个小谢这种
解决方案 »
- 关于权限控制处理的一个小问题
- 利用钩子修改.DLL文件中函数的返回值?
- CreateThread(nil,0,@ThreadFunction,Nil,0,ThreadId);
- 重赏之下有勇夫:重分求sn.
- 500分求教(先给100分,成功后再给400分)
- 如何去掉Form从Application 继存的图标?
- dll过程修改主程序控件设置问题,版主和各位高手请帮忙指点
- Image、ImageList、ListView图片显示问题...
- 为什么我做的toolbar这么难看!
- 诸位:用DELPHI5编写的WEB应用程序XXX.DLL为什么不能在浏览器中执行。
- delphi中Oracle的问题
- mdi 窗口问题
var
i:integer;
str:string;
begin
str:='abcdefghijk';
for i:=1 to length(str) do
begin
Randomize();
if Random(2)=1 then
str[i]:=LowerCase(str[i])[1]
else
str[i]:=UpperCase(str[i])[1];
end;
Label1.Caption:=str;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
str:string;
begin
str:='abcdefghijk';
for i:=1 to length(str) do
begin
Randomize();
if Random(i)=1 then
str[i]:=LowerCase(str[i])[1]
else
str[i]:=UpperCase(str[i])[1];
end;
Label1.Caption:=str;
end;
var
i:integer;
str:string;
begin
str:='abcdefghijk';
for i:=1 to length(str) do
begin
Randomize();
if Random(2)=1 then
str[i]:=LowerCase(str[i])[1]
else
str[i]:=UpperCase(str[i])[1];
end;
Label1.Caption:=str;
end;
????????????
Random(i)=1 ?这个概率越来越小,字符大小转换就不平衡了。
我试了Random(2)=1,出现全大写,全小写的机率太大了
所以试着改成Random(i)=1,情况就好得多了
Random(i)=1 改了 概率就不均衡了 肯定不行
function RandomUpperCase(S: String): String;
var
i : Integer;
C : Char;
begin
Randomize();
SetLength(Result, Length(S));
for i := 1 to Length(S) do
begin
C := S[i];
if Random(2) = 1 then
begin
if (C >= 'A') and (C <= 'Z') then Inc(C, 32);
end
else
if (C >= 'a') and (C <= 'z') then Dec(C, 32);
Result[i] := C;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(RandomUpperCase('abcdefghijklmn'));
end;
var
i:integer;
str:string;
begin
str:='abcdefghijk';
Randomize();
for i:=1 to length(str) do
begin
if Random(2)=1 then
str[i]:=LowerCase(str[i])[1]
else
str[i]:=UpperCase(str[i])[1];
end;
Label1.Caption:=str;
end;
{改写自8楼秀峰代码}function RandomUpperCase(S: String): String;
var
I : Integer;
begin
Randomize();
Result := S;
for I := 1 to Length(Result) do
if Random(2) = 1 then
if Result[I] in ['A'..'Z'] then Inc(Result[I], 32)
else
if Result[I] in ['a'..'z'] then Dec(Result[I], 32);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(RandomUpperCase('abcdefghijklmn'));
end;
{提高代码易读性}function RandomUpperCase(S: String): String;
var
I : Integer;
begin
Randomize();
Result := S;
for I := 1 to Length(Result) do
if Random(2) = 1 then
case Result[I] of
'A'..'Z' : Inc(Result[I], 32);
'a'..'z' : Dec(Result[I], 32);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(RandomUpperCase('abcAEEghijklmn'));
end;