Sj中国智造 发表于 2017-11-4 17:31:02

关于c语言汉字输出的问题

大佬们,怎么输入一串汉字,然后取到其中一个汉字然后输出。

hacker.jin 发表于 2017-11-4 17:31:03

#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默认就是),估计不能正常运行

ten$1 发表于 2017-11-4 17:41:09

/* Note:Your choice is C IDE */
#include "stdio.h"
#define A 100
void main()
{
    char h;
printf("请你输入一串汉字:");
scanf("%s",h);
printf("Is %s",h);
   
}

BngThea 发表于 2017-11-4 17:41:33

首先,你需要一个可以接受汉字输入的函数,推荐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:}

橙C 发表于 2017-11-4 18:30:10

{:10_261:}汉字问题关乎字节转化问题...新手还是用英文处理就好...

Sj中国智造 发表于 2017-11-5 00:06:10

ten$1 发表于 2017-11-4 17:41
/* Note:Your choice is C IDE */
#include "stdio.h"
#define A 100


我最后想输出其中一个汉字

Sj中国智造 发表于 2017-11-5 00:07:00

BngThea 发表于 2017-11-4 17:41
首先,你需要一个可以接受汉字输入的函数,推荐fget
用法请查看:
http://bbs.fishc.com/thread-72425-1- ...

我想不出怎么把其中一个汉字输出来

BngThea 发表于 2017-11-5 07:19:14

Sj中国智造 发表于 2017-11-5 00:07
我想不出怎么把其中一个汉字输出来

用一个计数器记录输入的偏移量,根据英文和汉字的不同得到需要提取的偏移量即可

Sj中国智造 发表于 2017-11-5 09:01:04

BngThea 发表于 2017-11-5 07:19
用一个计数器记录输入的偏移量,根据英文和汉字的不同得到需要提取的偏移量即可

能不能给我一段参考代码,谢谢

闪电猫网络 发表于 2017-11-5 11:32:17

仅限要求功能,
#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;
}

hacker.jin 发表于 2017-11-6 09:52:47

汗字的话要看你用什么编码,UTF-8,和GBK的处理方法不一样的

Sj中国智造 发表于 2017-11-6 23:28:46

闪电猫网络 发表于 2017-11-5 11:32
仅限要求功能,

谢谢
页: [1]
查看完整版本: 关于c语言汉字输出的问题