关于c语言汉字输出的问题
大佬们,怎么输入一串汉字,然后取到其中一个汉字然后输出。 #include <stdio.h>#include <string.h>
int main()
{
wchar_t str;
int i;
i=0;
printf("请输入一段文字:\n");
wscanf(L"%ls",str);
getchar();
printf("你想要第几个字符(不检查越界):\n");
scanf("%d",&i);
wprintf(L"%c%c\n",str,str[(i*2)+1]);
return 0;
}
我不保证所有平台可以运行,而且貌似如果编码是UTF-8(linux默认就是),估计不能正常运行 /* Note:Your choice is C IDE */
#include "stdio.h"
#define A 100
void main()
{
char h;
printf("请你输入一串汉字:");
scanf("%s",h);
printf("Is %s",h);
} 首先,你需要一个可以接受汉字输入的函数,推荐fget
用法请查看:
http://bbs.fishc.com/thread-72425-1-1.html
然后,你运行一下下面这段代码:
#include <stdio.h>
int main()
{
char str[] = "中";
int length, i;
length = sizeof(str) / sizeof(str);
printf("length of str: %d\n", length);
for (i = 0; i < length; i++)
{
printf("str[%d] = %d\n", i, str);
}
return 0;
}
看看结果,你应该知道汉字转换为整形一定是负数,然后占两个字节的内存空间
知道上述结论,相信你也有思路了{:10_256:} {:10_261:}汉字问题关乎字节转化问题...新手还是用英文处理就好... ten$1 发表于 2017-11-4 17:41
/* Note:Your choice is C IDE */
#include "stdio.h"
#define A 100
我最后想输出其中一个汉字
BngThea 发表于 2017-11-4 17:41
首先,你需要一个可以接受汉字输入的函数,推荐fget
用法请查看:
http://bbs.fishc.com/thread-72425-1- ...
我想不出怎么把其中一个汉字输出来 Sj中国智造 发表于 2017-11-5 00:07
我想不出怎么把其中一个汉字输出来
用一个计数器记录输入的偏移量,根据英文和汉字的不同得到需要提取的偏移量即可 BngThea 发表于 2017-11-5 07:19
用一个计数器记录输入的偏移量,根据英文和汉字的不同得到需要提取的偏移量即可
能不能给我一段参考代码,谢谢 仅限要求功能,
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char* p=new char;
int count=0;
/*char str = "";*/
printf("请输入汉字:");
scanf_s("%s", p,100);
printf("要输出第几个汉字:");
scanf_s("%d", &count);
count--;
strcpy_s(p+2*count+2, 1, "");
printf("%s", p + 2 * count);
system("pause");
return 0;
} 汗字的话要看你用什么编码,UTF-8,和GBK的处理方法不一样的 闪电猫网络 发表于 2017-11-5 11:32
仅限要求功能,
谢谢
页:
[1]