2011-05-02 44 views
0

所以我在C++上实现这个国际象棋程序,我试图集成到winboard协议......他们说我需要写这样做的函数之一应该有以下签名:C++ char问题

char *MoveToText(MOVE move);   // converts the move from your internal format to text like e2e2, e1g1, a7a8q. 

我的问题是....文本格式类似E2E2 ....但函数的返回类型为char ...而据我了解,焦炭是只有一个单字符....

那么他们怎么会告诉我使用这个签名?

还是我错了,其实char也可以存储多个字符,如e2e2,e1g1等?

+0

你有,你偶然引用文档URL? – jefflunt 2011-05-02 03:42:40

+0

我刚刚从这个线程得到它:http://www.open-aurec.com/wbforum/viewtopic.php?f=24&t=51739 – 2011-05-02 03:43:28

回答

2

是的,在C中,一个char *指向一个字符数组。 C将字符数组视为字符串,以空字节结尾。

+0

不应该是ASCII/UTF-8字符串是以null结尾的数组字符?在char []的末尾没有要求空(尽管它是一个通用的约定) – 2011-05-02 04:23:19

+0

@Phil字符串只是一个字符数组,但我猜它是空的终止使它成为一个字符串而不是简单的阵列。但是,如果您尝试在需要字符串的函数中使用非空终止的char [],您将得到段错误或垃圾或其他意外行为。 – 2011-05-02 19:07:54

1

char *是对char指针 - 字符序列的地址。