我使用c程序尝试计算文本中的单词。但是当文本为man malloc >x
时,也会打印连字符。
最后,我发现连字符是一个多字符的字符。
谁能告诉我连字符的ascii。
它在man malloc >x
中的第17行。
答案 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选项以更好地适应您的使用情况,并避免使用连字符。