在linux中,连字符是一个多字符字符?

时间:2014-05-08 15:35:12

标签: c linux hyphen

我使用c程序尝试计算文本中的单词。但是当文本为man malloc >x时,也会打印连字符。 最后,我发现连字符是一个多字符的字符。 谁能告诉我连字符的ascii。 它在man malloc >x中的第17行。

1 个答案:

答案 0 :(得分:1)

首先,如果你不给角色,我们就不知道它是什么。总是重新格式化手册页,并进行修改以适合显示的上下文。

  

我发现连字符是一个多字符字符。谁能告诉我连字符的ascii。

如果它是一个多字符字符,那么它不是ASCII,它是unicode。而我的猜测是:

这是unicode字符8208.提示,在python3中运行:

>>> print(ord('–'))
8208

现在要处理这个问题,您需要包含wchar.h,使用wchar_t*字符串并使用wcslen()计算字符数。如您所愿阅读手册:

作为摘录:

const wchar_t* s = "This is an hyphen: `–` !";
printf("%d", wcslen(s));

N.B。:为避免在您的联机帮助页显示中对单词进行连字,您可能需要将COLUMNS env变量设置为非常大的值; - )

N.B.2:您可能还想使用nroff -mandoc /usr/share/man/man3/malloc.3并查看nroff选项以更好地适应您的使用情况,并避免使用连字符。