各位大神,我现在刚大一,正在上C语言的课,老师让我们读取一个txt文件(它的每一行都是一个中文字符串),把每行的字符串,用一个整数表示(int或者long long等都可以)。这个本来不难吧,但是规定必须做到一点,一个汉字只对应一个整数,一个整数也必须只对应一个汉字!
我想的办法是把每个汉字获得其gbk2312编码,然后组合起来,比如“字”这个汉字,gbk2312编码为D7D6,十进制为215-214,那么“字”就可以用整数215214表示,这样就有了汉字和整数两者相互一一对应。但是问题又来了!txt中有的字符串非常的长,最多的有32个汉字,这样最大可能要一个32*2*3=192位长度的整数(这样的数最小是10^191),即使用unsigned long long 也存不下!
大神们有什么别的办法吗??老弟谢谢你了!!
我想的办法是把每个汉字获得其gbk2312编码,然后组合起来,比如“字”这个汉字,gbk2312编码为D7D6,十进制为215-214,那么“字”就可以用整数215214表示,这样就有了汉字和整数两者相互一一对应。但是问题又来了!txt中有的字符串非常的长,最多的有32个汉字,这样最大可能要一个32*2*3=192位长度的整数(这样的数最小是10^191),即使用unsigned long long 也存不下!
大神们有什么别的办法吗??老弟谢谢你了!!