gpt4 book ai didi

dart - 如何在 Dart 中使用 char 类型? (打印字母表)

转载 作者:太空狗 更新时间:2023-10-29 17:07:11 27 4
gpt4 key购买 nike

我正在努力学习 Dart language ,通过转换我学校提供的 C 编程练习。

我们 C 池中的第一个练习是编写一个函数 print_alphabet() 以小写形式打印字母表;禁止直接打印字母

在 POSIX C 中,直接的解决方案是:

#include <unistd.h>

void print_alphabet(void)
{
char c;

c = 'a';
while (c <= 'z')
{
write(STDOUT_FILENO, &c, 1);
c++;
}
}

int main(void)
{
print_alphabet();
return (0);
}

但是,据我所知,当前版本的 Dart (1.1.1) 没有一种处理字符的简单方法。我想出的最远的(对于我的第一个版本)是这样的:

void  print_alphabet()
{
var c = "a".codeUnits.first;
var i = 0;

while (++i <= 26)
{
print(c.toString());
c++;
}
}

void main() {
print_alphabet();
}

它打印每个字符的 ASCII 值,每行一个,作为一个字符串 ("97"... "122")。不是我想要的……

我正在尝试寻找一种合适的方法来做到这一点。但是缺少像 C 语言中那样的 char 类型让作为初学者的我有点吃力!

最佳答案

Dart 没有字符类型。

要将代码点转换为字符串,您可以使用 String 构造函数 String.fromCharCode:

int c = "a".codeUnitAt(0);
int end = "z".codeUnitAt(0);
while (c <= end) {
print(String.fromCharCode(c));
c++;
}

对于像这样的简单内容,如果您不介意换行,我会使用“print”而不是“stdout”。

还有:

int char_a = 'a'.codeUnitAt(0);
print(String.fromCharCodes(new Iterable.generate(26, (x) => char_a + x)));

或者,使用较新的列表文字语法:

int char_a = 'a'.codeUnitAt(0);
int char_z = 'z'.codeUnitAt(0);
print(String.fromCharCodes([for (var i = char_a; i <= char_z; i++) i]));

关于dart - 如何在 Dart 中使用 char 类型? (打印字母表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184271/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com