精华内容
下载资源
问答
  • ; margin-right:0pt">输入一个正整数,为总汉字数。再输入一串汉字。统计各汉字出现次数并输出。</p>
  • c语言字符串逐个输出汉字 #include <wchar.h> #include <locale.h> //scanf、printf都只能输入、输出不加L的窄字符 //输入、输出宽字符串可以使用 <wchar.h> 头文件中的wscanf、wprintf 函数,...

    c语言从字符串逐个输出汉字

    #include <wchar.h>
    #include <locale.h>
    //scanf、printf都只能输入、输出不加L的窄字符
    //输入、输出宽字符串可以使用 <wchar.h> 头文件中的wscanf、wprintf 函数,wprintf 对应的格式控制符是%lc。 
    //宽字符的输入输出前面需要加上L,告诉编辑器是宽字符
    int main(){
        wchar_t strings[10];
        setlocale(LC_ALL, "chs");//指定字符区域为中文
        printf("输入一个汉字字符串:");
        wscanf(L"%ls",strings);//宽字符的输入输出前面需要加上L,告诉编辑器是宽字符
        printf("当前输入的汉字字符串内容为:");
        wprintf(L"%s\n",strings);
    	for(int i=0;i<wcslen(strings);i++){
    		printf("输出第%d个汉字:",(i+1));
    		wprintf(L"%lc\n",strings[i]);
    	} 
    return 0;
    }
    https://ask.csdn.net/questions/5479530?answer=34127012&spm=1005.2026.3001.5703
    
    
    展开全文
  • 1 #include "stdio.h" 2 #include "windows.h" 3 4 int main() ... 6 char sText[20] = { "多字节字符串!OK!" }; 7 DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, sText, -1, NULL, 0); 8 pri
     1 #include "stdio.h"
     2 #include "windows.h"
     3 
     4 int main()
     5 {
     6     char sText[20] = { "多字节字符串!OK!" };
     7     DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, sText, -1, NULL, 0);
     8     printf("dwNum = %d", dwNum);
     9     for (int i = 0; i < 20; i=i+2)
    10     {
    11         printf("%c%c", sText[i],sText[i+1]);
    12         printf("%d", i);
    13     }
    14     system("pause");
    15     return 0;
    16 }

    char是单字节类型,占8个二进制位,中文字符占两个字节,输出字符串中的单个汉字字符时,不可以直接使用printf("%c",sText[i])语句,这样只是输出汉字字符的前半段,显示在命令行的结果为一个问号。

    展开全文
  • C语言字符/字符串

    2019-11-30 18:24:49
    第一次循环输出str[0],但是这个字符在ASCII字符集里代表这样一个东西(不知道在这儿能不能正常显示),但是Windows的命令提示符程序读取到这里就会自动使用宽字符集,也就是说,它已经准备好读取下一个字符,然后把...

    1、汉字在计算机中的存储形式

      计算机用两个字节来表示一个汉字,“我”在内存里就是这样存放的:CE D2。CE是str[0]的内容,D2是str[1]的内容。第一次循环输出str[0],但是这个字符在ASCII字符集里代表这样一个东西(不知道在这儿能不能正常显示),但是Windows的命令提示符程序读取到这里就会自动使用宽字符集,也就是说,它已经准备好读取下一个字符,然后把他们当成一个字符显示出来。于是就出现了那个汉字。
    例程:

    #include <stdio.h>
    int main()
    {
       printf("%c%c",(char)0xce,(char)0xd2);
    }

     

    2、‘’/0' '0' 0 三者之间的关系

    字符 '0' 和 '\0' 及整数 0 的区别

    字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节(8 位二进制数)。

    整型 int 在内存中占用空间为四个字节(32位二进制数)。

    字符 '0':char c = '0'; 它的 ASCII 码实际上是 48,内存中存放表示:00110000。

    字符 '\0': ASCII 码为 0,表示一个字符串结束的标志。这是转义字符(整体视为一个字符)。由于内存中存储字符,依然是存储的是对应字符集的字符编码,所以内存中的表现形式为 00000000。

    整数 0 : 内存中表示为 00000000 00000000 00000000 00000000,虽然都是 0,但是跟上面字符 '\0' 存储占用长度是不一样的。

    展开全文
  • 出于好奇测试了一下,声明的时候: char ch[5]; scanf("%s",ch); printf("%s,%d",ch,sizeof...好像汉字啦,Ctrl+字符这一类奇奇怪怪的好像也都可以输出诶,怎么做到的? 好像getchar()也能正常识别汉字并储存的样子……
  • 相信大家应该都知道,汉字经过utf-8后转码会变成一字串,其中以/分割,如:\xE7\x98\x91............,其中每三个/(十六进制)代表一个汉字,也就是一个汉字转换为了三个字节。一般情况下,我们只需要复制这段字串...

    相信大家应该都知道,汉字经过utf-8后转码会变成一串字串,其中以/分割,如:\xE7\x98\x91............,其中每三个/(十六进制)代表一个汉字,也就是一个汉字转换为了三个字节。

    一般情况下,我们只需要复制这段字串,初始化到一个指针,在做输出就可以显示相应的汉字,这是因为在这段初始化过程中,已经自动将/识别(认为是十六进制),并将每个十六进制放入一个字节中,这样就可以正常的显示汉字,但是有时候我们通过一些别的方式来截取的字段,直接输出是无法获得这种效果的,因此就需要我们做一些转换来将其显示出来。

    首先我们要明白,我们现在需要做的就是将每个/后面相应的字串改为十六进制,然后在将其以一个字节的方式存入数组中,理解了这种方式自然就很容易写出来了。

    请看下面函数:

    static char *stohex(const char *buf)

    {

    char src[2048] = {0};

    char buf_temp[20148] = {0};

    int x = 0;

    unsigned long i;

    while(*buf != '\0')

    {

    if(*buf == '\\')

    {

    strcpy(buf_temp,buf);

    *buf_temp = '0';

    *(buf_temp + 4) = '\0';

    i = strtoul(buf_temp, NULL, 16);

    src[x] = i;

    buf += 3;

    }

    else

    {

    src[x] = *buf;

    }

    x++;

    buf++;

    }

    src[x] = '\0';

    return src;

    }

    这个函数的主要功能就是实现了这个转换,理解原理实现起来就很简单。

    展开全文
  • 判断字符串b的所有字符是否都在字符串a中出现过,a、b都是可能包含汉字字符串。b中重复出现的汉字,那么a中也要至少重复相同的次数。(两个字节表示一个汉字,高字节最高位为1的代表汉字,低字节最高位可以不为1)...
  • 最近在完成数据结构作业,在代码过程中经常遇到一些小问题,比如在输出字符串数组时,在一串自己想要的字符后面经常会出现一些不知名的汉字乱码。 (这段代码是去除字符数组里面重复数组元素) #include "header....
  • 相信大家应该都知道,汉字经过utf-8后转码会变成一字串,其中以/分割,如:\xE7\x98\x91............,其中每三个/(十六进制)代表一个汉字,也就是一个汉字转换为了三个字节。 一般情况下,我们只需要复制这段...
  • C语言字符串

    2020-11-08 00:54:58
    字符串 定义字符数组 char arr[5]={'h','e','l','l','o'}; 但是 char * arr="hello"; 这个里面的数组是有六位,最后一位是\0结束 字符串结束标志位\0,数字0等于\0,但是不...c语言字符串一定是一个char数组。 ...
  • 主要是将汉字字符进行逆序输出 与英文不同的是,一个汉字占有两个字符。所以处理的时候需要注意 思路其实就是讲最后的一个地址给第一个,倒数第二个给第二个,以此类推。 #include<stdio.h> #include<...
  • char在C/C++中只占一个字节,通常只用来处理ASCII码,所以不能用来存放汉字等象形文字。通常我们使用Unicode字符集(万国码),支持全球的语言文化。utf-16足以存放全球常用的字符,所以在微软的编译器中,使用2个...
  • C语言汉字存在数组里并输出

    千次阅读 2020-03-20 16:27:19
    汉字存在数组里,可以定义一个二维数组 比如:char[6][20]={"个","十","百","千","万","十万"}; 输出可以printf("%s",x[1]);...因为用char的一维数组来表示字符串字符串数组就是char的二维数组。 ...
  • 一个汉字是由两个字符组成,避免输出时乱码,可以先判断传进来的字符是否为半个字符,代码如下: int half_chn(char *info, int len) { int i; for(i=0; i<len; ) { if(info[i] >= 0x80) i += 2; else ...
  • 一般情况下,应用程序采用的字符集为gbk, gb2312,该字符集中一个汉字由两个字节组成,所以在普通的C语言中,汉字是按字符串进行存储和输出的。(另:还有utf8字符集,一个汉字由三个字节组成,详情可查阅utf8字符集)...
  • 目前许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,涉及到汉字的情况也大都是在printf语句中输出提示信息或结果,如:printf("请输入a,b的值:\n");printf("输出功率为%s千瓦。\n",...
  • 字符串: ...字符串输出 %s ’\0‘是不会输出的  char a[] = {'1','2'};  处理函数:strlen 和sizeof strlen 函数:计算字符串长度 计算字符数,而不是字数。一个汉字做3个字符 计算字符不包括\0
  • 汉字倒序输出(C语言)

    2021-01-01 12:04:49
    我们知道一个汉字是两个字符,我们也会字符的输入输出,但用字符而不是字符串输出汉字你试过吗? 接下来我演示一下: #include<stdio.h> int main() { char Chinese[99]; int i; gets(Chinese);//字符串...
  • C语言 Unicode字符问题

    2019-07-29 20:26:21
    char字符串可以显示汉字,字符不可以,字符连在一起%c%c可以输出汉字 3、 打印出2,说明ch占两个字节 4、wprintf函数 通过%wc格式输出符 打印出一个汉字 正常显示 5、wprintf函数 通过%wc格式输出符 ...
  • 输入一个汉字字符串:"); scanf("%s",string); printf("\n用%%s输出整个字符串:%s",string);//可以一次性输出所有汉字 printf("\n用%%c输出第一个汉字:%c",...
  • 目前许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,涉及到汉字的情况也大都是在printf语句中输出提示信息或结果,如: printf("请输入a,b的值:\n"); printf("输出功率为%s千瓦。\n...
  • Go中字符串

    2019-10-30 23:57:41
    字符串 Go语言中的字符串实际上是只读的字节切片。要获悉字符串包含多少个字节,可使用Go内置函数len。 在Go中,可使用格式设置将十进制转换为字符和二进制表示,二进制表示在... // 一个汉字占三字节,输出18 n...
  • 目前许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,涉及到汉字的情况也大都是在printf语句中输出提示信息或结果,如: printf("请输入a,b的值:\n"); printf("输出功率为%s千瓦...
  • 除了这种格式化之外呢,我们学过C语言的sprintf可以格式化输出一个字符串,通过一些格式化的字段来设置这个; 我们python当中同样也有这样的一种语法: 字符串长度: 可以看到汉字跟ASCII码对应的其实都占1位,...
  • 介绍 首先我的汉字字符串“你好,中国!”,下面我们要实现的是只输出个‘你’ ,这个方式刚学习C语言的小伙伴可能不知道 vc++6.0 诞生于1997年,这个比不支持c99 所以我们可以采用的办法就要变通一下 #include&...
  • C语言程序中处理汉字(修正版)

    千次阅读 2012-10-25 10:00:48
    目前许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,涉及到汉字的情况也大都是在printf语句中输出提示信息或结果,如: printf("请输入a,b的值:\n"); printf("输出功率为%s...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

c语言输出汉字字符串

c语言 订阅