Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Dart中使用字符类型?(印刷字母表)_Dart - Fatal编程技术网

如何在Dart中使用字符类型?(印刷字母表)

如何在Dart中使用字符类型?(印刷字母表),dart,Dart,我试图通过转换我的学校为C编程提供的练习来学习 C语言库中的第一个练习是编写一个函数print_alphabet(),它以小写字母打印字母表;禁止直接打印字母表 在POSIX C中,简单的解决方案是: #include <unistd.h> void print_alphabet(void) { char c; c = 'a'; while (c <= 'z') { write(STDOUT_FILENO, &am

我试图通过转换我的学校为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);
}
#包括
作废打印字母表(作废)
{
字符c;
c=‘a’;

虽然(c当我完成我的文章并重新表述我的问题的标题时,我不再因为这个问题而胡思乱想了

似乎书写字符的一种正确方法是使用
dart:io
库中的
stdout.writeCharCode

import 'dart:io';

void  ft_print_alphabet()
{
  var c = "a".codeUnits.first;

  while (c <= "z".codeUnits.first)
    stdout.writeCharCode(c++);
}

void main() {
  ft_print_alphabet();
}
导入'dart:io';
void ft_print_alphabet()
{
var c=“a”.codeUnits.first;

而(cDart)没有字符类型

要将代码点转换为字符串,请使用
string
构造函数
string。fromCharCode

int c = "a".codeUnitAt(0);
int end = "z".codeUnitAt(0);
while (c <= end) {
  print(String.fromCharCode(c));
  c++;
}
或者,使用较新的列表文字语法:

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]));
int char_a='a'.codeunit(0);
int char_z='z'.codeunit(0);

print(String.fromCharCodes([for(var i=char_a;i Wow,那
Iterable
类看起来很强大!对我来说,这似乎有些过分,但我想你可以用它做一些事情,在循环语句中编写会花费更长的时间。@Irn这是一个非常强大和快速的例子。你的拉丁语1示例。我的问题是如何在ISO 8859-9(“拉丁语5”)中做到这一点?对于非拉丁-1代码页,您需要在字节和Unicode字符之间进行自己的转换。因为它只有,最简单的可能是检查以下内容:
cpToLatin9(int-cp)=>const{0x11e:0xd0,0x11f:0xf0,0x130:0xdd,0x131:0xfd,0x15e:0xde,0x15f:0xfe}[cp]?cp
latin9ToCp(int-latin9Char)=>const{0xd0:0x11e,0xf0:0x11f,0xdd:0x130,0xfd:0x131,0xde:0x15e,0xfe:0x15f}[latin9Char]??latin9Char
。当您获得iso08859-9字节时,您可以使用
latin9toCp
为其获取代码点。谢谢Irn,我稍后会检查它today@Irn我试图实现,但没有准确捕获。在我的Dart代码中,大写字母I和上面的点表示为字节[304],我必须用服务器字节[152]替换它并以字节而不是字符串的形式发送到服务器。cpToLatin9(int-cp)和latin9ToCp(int-latin9Char)是如何工作的?问题:“我仍然不知道如何操作字符类型”,回答:“Dart没有字符类型。它们只是一个整数。所以你可以像处理整数一样处理它们,因为它们是整数。”。
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]));