C 在linux中,连字符是多字符字符?

C 在linux中,连字符是多字符字符?,c,linux,hyphen,C,Linux,Hyphen,我使用c程序尝试从文本中计算单词。但是当文本是manmalloc>x时,连字符也会被打印出来。 最后,我发现连字符是一个多字符字符。 谁能告诉我连字符的ascii码。 这是关于manmalloc>x中第17行的。首先,如果你不给出这个字符,我们就不知道它是什么。手册页始终会重新格式化,并根据显示的上下文进行修改 我发现连字符是一个多字符字符。谁能告诉我连字符的ascii码 如果它是多字符字符,那么它不是ASCII,而是unicode。我的猜测是: ‐ 这是unicode字符8208。提示,在p

我使用c程序尝试从文本中计算单词。但是当文本是
manmalloc>x
时,连字符也会被打印出来。 最后,我发现连字符是一个多字符字符。 谁能告诉我连字符的ascii码。
这是关于
manmalloc>x

中第17行的。首先,如果你不给出这个字符,我们就不知道它是什么。手册页始终会重新格式化,并根据显示的上下文进行修改

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

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

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

>>> print(ord('–'))
8208
现在要处理这个问题,您需要包括
wchar.h
,使用
wchar\u t*
字符串并使用
wcslen()
对字符进行计数。正如您喜欢阅读手册:

作为一个片段:

const wchar_t* s = "This is an hyphen: `–` !";
printf("%d", wcslen(s));
注意:为了避免手册页显示中的单词连字号,您可能需要将
env变量设置为非常大的值;-)


注2:您可能还希望使用
nroff-mandoc/usr/share/man/man3/malloc.3
,并查看nroff选项以更好地适应您的使用,并避免连字号化。

“第17行”?My
man
查看器根据我的终端大小重新编制页码…为什么不在此处粘贴有问题的字符?发件人:不应将连字符与破折号(‒,–,–,―)混淆。。。还是用减号(−)连字符“-”在ASCII标准中是二维的,最明显的是一个字节/字符。”——“不是连字符,而是破折号,连字符是“–”。参见维基百科页面。
”–“
是U+2013,EN-dash。我在
man malloc>x
时看到的字符是
”–/code>,U+2010,连字符。当单词跨行拆分时出现。(但对于不同的区域设置,
man
使用
'-'
,U+002D,连字符-减号,这是一个ASCII字符。)好的,我在我的答案中固定了unicode值,尽管它在其他方面没有太大的改变。正如我在介绍中所说的,一个手册页被重新格式化并修改为fid显示上下文,这就是您要确认的;-)MALLOC(3)Linux程序员手册MALLOC(3)名称calloc,malloc,free,realloc-分配和释放动态内存概要#包括void*calloc(大小为nmemb,大小为size);void*malloc(大小为size);void free(void*ptr);void*realloc(void*ptr,大小为size);DESCRIPTION calloc()为每个大小为字节的nmemb元素数组分配内存,并返回指向allo的指针鈥? 记忆被破坏了。发生了什么事?你在发表评论时崩溃了吗?