如何在帕斯卡中按第一个字符对字符串进行排序?

发布于 2024-11-10 11:31:03 字数 159 浏览 4 评论 0原文


我相信这个问题已经很清楚了。
那么,如何在 pascal 中按字符串的第一个字符对字符串进行排序?
因为据我所知 pascal 没有本地排序功能,所以应该有一种方法可以将字母转换为数字,然后以某种方式对它们进行排序......无论如何,这只是猜测。
感谢您提前的答复;)

I believe that the question is pretty clear.
So, how to sort strings by their first char in pascal?
Since as far as I know pascal has no native sorting functions there should be a way to to transfer letters in to digits and then sort them some how... Anyhow that is only by guess.
Thanks for the answers in advance ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鸢与 2024-11-17 11:31:03
program test;

var
  nr:Integer;
  mystrings:array [0..100] of string;
  i:Integer;
  tmp,tmp2,tmp3:String;
begin
  WriteLn('Please input number of strings');
  ReadLn(nr); //max 100 strings
  for i:=0 to nr - 1 do
  begin
      str(i,tmp3);
      Write('String['+tmp3+'] = ');ReadLn(mystrings[i]);
  end;

  // Now we sort the strings

  i:=0;
  repeat
    tmp:=UpperCase(mystrings[i]);
    tmp2:=UpperCase(mystrings[i+1]);
    if tmp[1]>tmp2[1] then
    begin
        tmp:=mystrings[i];
        mystrings[i]:=mystrings[i+1];
        mystrings[i+1]:=tmp;
        i:=-1;
    end;
    Inc(i);
  until i=nr -1 ;

  //Display strings sorted
  for i:=0 to nr - 1 do
  begin
      WriteLn(mystrings[i]);
  end;
  Readln;
end.

希望它有帮助;)

program test;

var
  nr:Integer;
  mystrings:array [0..100] of string;
  i:Integer;
  tmp,tmp2,tmp3:String;
begin
  WriteLn('Please input number of strings');
  ReadLn(nr); //max 100 strings
  for i:=0 to nr - 1 do
  begin
      str(i,tmp3);
      Write('String['+tmp3+'] = ');ReadLn(mystrings[i]);
  end;

  // Now we sort the strings

  i:=0;
  repeat
    tmp:=UpperCase(mystrings[i]);
    tmp2:=UpperCase(mystrings[i+1]);
    if tmp[1]>tmp2[1] then
    begin
        tmp:=mystrings[i];
        mystrings[i]:=mystrings[i+1];
        mystrings[i+1]:=tmp;
        i:=-1;
    end;
    Inc(i);
  until i=nr -1 ;

  //Display strings sorted
  for i:=0 to nr - 1 do
  begin
      WriteLn(mystrings[i]);
  end;
  Readln;
end.

Hope it helps ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文