精华内容
下载资源
问答
  • 其实尝试了 很多次后 终于发现原因,原来是在scanf函数输入中有逗号,然后输入的逗号确是中文的逗号,编译器可能无法识别第二个数字,便把中文字符当做第二个数字,并与第一个数字进行大小比较,并输出,然后造成...

    C语言比较两个数的大小时我,程序正确,输出结果报错

    其实尝试了 很多次后 终于发现原因,原来是在scanf函数输入中有逗号,然后输入的逗号确是中文的逗号,编译器可能无法识别第二个数字,便把中文字符当做第二个数字,并与第一个数字进行大小比较,并输出,然后造成结果错误。

    #include <stdio.h>
    int main()
    {
        int max(int x,int y);
        int a,b,c;
        scanf("%d,%d",&a,&b);
        c=max(a,b);
        printf("max=%d\n",c);
        return 0;
    
     } 
    
     int max(int x,int y)
     {
        int z;
        if (x>y)  z=x;
        else z=y;
        return(z);
     }

    这是输入正常的英文逗号显示正确的结果

    这是输入正确的英文逗号显示结果

    这是输入正常的中文逗号显示的错误的结果

    这是输入正常的中文逗号显示的错误的结果

    大家编译时尽可能的把输入切换在英文,并锁定。

    展开全文
  • C语言字符串之输入中文

    千次阅读 2020-02-25 17:27:42
    C语言中的字符串是以ASCII码表的形式存入的,输入英文字符是以英文字符对应的ASCII码的形式进入寄存器中的,例如输出hello world!: #include<stdio.h> int main() { char str[]="hello world!"; printf("%s\n...

    C语言中的字符串是以ASCII码表的形式存入的,输入英文字符是以英文字符对应的ASCII码的形式进入寄存器中的,例如输出hello world!:

    #include<stdio.h>
    int main()
    {
    char str[]="hello world!";
    printf("%s\n",str);
    return 0;
    }
    

    将c反汇编得到,
    在这里插入图片描述
    在这里插入图片描述
    可以看到h的ASCII码是68,e的ASCII码是65等等存放进内存的,那中文字呢?中文字并没有对应的ASCII码,还可以显示出来吗?
    在这里插入图片描述
    答案当然是肯定的,在计算机中存储中文使用的编码规则是GB2312或GB2312-80,规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,连在ASCII里本来就有的数字、标点、字母都通通重新编了两个字节长的编码,这就是常说的“全角”字符,而原来在127号以下的那些就叫“半角”字符。
    将代码反汇编看看,
    在这里插入图片描述
    这就是中文的存储方法。
    但这样的话也是有弊端的,我们国家GB2312里的符号的意义可能和别的国家的不一样,即两国使用相同的数字代表不同的符号,于是Unicode出现了,我就不说明Unicode的编码方式了。

    展开全文
  • C语言字符输入输出

    2020-05-18 22:22:09
    例如从键盘上输入的abc英文字母、你好等中文、日语,都是字符,只不过编码方式不同而已。 那什么是编码方式呢? C语言中的数据都是以位模式存储在计算机上。为了方便表达、计算,C语言字符做了编码,每个字符都有...

    字符

    char(字符型)是C语言的基本数据类型。例如从键盘上输入的abc英文字母、你好等中文、日语,都是字符,只不过编码方式不同而已。
    那什么是编码方式呢?
    C语言中的数据都是以位模式存储在计算机上。为了方便表达、计算,C语言对字符做了编码,每个字符都有一个整形常量对应。如果不确定某块内存中的数据是char型,那么完全可以把这块内存当做一个int型数据来看,编译器不会报错。例如在ANSI编码中,'a’对应的是97。

    printf("%d ",'a');
    printf("%c",'a');
    结果为:97 a
    
    printf("%d ",'你');
    printf("%c",'你');
    结果为:50403 a
    

    文本流

    文本是以流的处理方式输入、输出到任何地方。(流就不做介绍了,形象点可以想象下家里的自来水流)。文本流是由多行字符组成的字符序列。C语言库提供了简单字符的输入、输出,分别是:

    c = getchar();
    putchar(c);
    c:键盘输入的字符、待打印的字符。
    

    示例:

    #include <stdio.h>
    /*打印输入的字符*/
    int main()
    {
    	int c;
    	while((c=getchar()) != EOF)
    		putchar(c);
    	return 0;
    }
    

    结果如下:
    在这里插入图片描述

    EOF

    EOF(end of file)是C语言中用于结束文件的特殊值,是区分有效字符与输入结束符的标志。EOF定义在头文件<stdio.h>中,是一个整形宏定义,它与任何char类型的值都不相同。
    有三种方式输入EOF:
    1、按F6键。
    2、按Ctrl-Z组合键。
    3、打开数字小键盘之后按住Alt键再依次按小键盘上的26两个数字键最后放开Alt键。

    参考文献:https://blog.csdn.net/lanyangyang666/article/details/52995602

    展开全文
  • 1.1 中文字符以假乱真 不管是初学者还是有经验的程序员,都会碰到这个问题。这往往是在拼音状态下输入标点符号之类的字符造成的。假设语句 printf("%s","OK"); 中的“,”号是中文字符,编译器会给出如...

    本节书摘来自华章出版社《C语言解惑》一 书中的第1章,第1.1节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    1.1 中文字符以假乱真

    不管是初学者还是有经验的程序员,都会碰到这个问题。这往往是在拼音状态下输入标点符号之类的字符造成的。假设语句

    printf("%s","OK");

    中的“,”号是中文字符,编译器会给出如下信息:

    error C2018: unknown character '0xa3'
    error C2018: unknown character '0xac'

    注意:只要给出“0xa”的标识,就可断定该行存在中文字符。

    只要稍微注意一下就可以避免这个错误。其实,多数的错误不是在输入程序时误输入,而是直接将Word文档里或网上的程序拷贝到源文件中造成的。一般是因为整理文档里的程序时,人为地使用中文字符或插入图形符号,例如&、[、] 、& 、# 、﹨等符号。
    只要编译系统给出出错信息并定位到所在行,就很容易判断出错误。有点难度的是中文空格,这个空格一般有三种情况:一行的首、尾和其他位置。假设下面程序除第1行之外,其他行的首尾均有空格,看看这类错误的表现形式。

    #include <stdio.h>
    void main( ) 
    { 
             printf("%s\n","OK");   //打印输出
    }
    

    当编译给出第二行有错误的信息时,可以把鼠标光标放到第一行的尾部,按一下“↓”键,这时光标移到下一行并停在离“)”的一段距离处,这说明光标左边有中文空格。用Backspace键删除前面的空格,删到“)”处即可。如果将光标放在“#”处,按一下“↓”键,光标会停在离字母“v”的一段距离处,使用删除键删除右边的空格即可。
    其他各行同样处理,对于第4行,如果“//”号的字体不是绿色的,说明注释语句之前有空格,注释不起作用,往左边删除,直到“//”号变为绿色。
    需要注意的是,编译拷贝的程序时,可能会给出很多错误信息,而且可能给出的错误种类也很多。如果第1个错误就有“0xa”的标识,则一定要先解决它。有时解决它之后,其他的错误可能就没有了。

    展开全文
  • 前言:【C语言基础】系列文章是根据C Primer Plus(第五版)中文版一书内容加以逻辑性概括。记录自己的成长。 字符串和格式化输入/输出 一、字符C语言没有与字符串相关的变量类型,字符的存储是在char数组当中,...
  • 二、C程序:(注意:中文部分是程序注释,如果编译器不支持中文,需要把中文删掉) 1 #include <stdio.h> 2 3 int main() { 4 5 int count_letter = 0; //保存字母数量 6 int count_blank = ...
  • 前言:【C语言基础】系列文章是根据C Primer Plus(第五版)中文版一书内容加以逻辑性概括。记录自己的成长。 字符输入输出主要介绍讲两个函数:getchar()和putchar()以及一个需要格外注意的知识点。 字符输入/...
  • c语言中putchar参数为字符数组时,出现中文乱码. #include int main() { char a; ... printf("输入一个除a和z之外的小写英文字母\n");...请问为什么会出现一个中文字符,而且原本的s消失了,为什么r和t未受影响
  • 中间用到的标点符号,可以在题目中或者输入数据中复制 Sample Input 4 王婆卖瓜——自卖自夸 麦场上挂马灯——照常(场) 麻布手中绣牡丹——配不上;不配 泥菩萨过河,自身难保 Sample Output 5 ...
  • 之前一直以为读取中文时变成乱码时因为读取文件时字符串长度不足,或者是文件中中文格式不对,上网百度以后发现是TXT格式文件在创建时默认编码为UTF-8,这导致在读取文件时编码格式不对应而造成读取中文时出现乱码 ...
  • C语言】我解决了输入中文判断中文的问题!一个简单的扑克牌管理查询系统(CodeBlocks) PS:编程环境为Codeblocks 前言 老师又双叒叕不做人了!这次直接上升了一个小难度! 扑克牌的查找输入输出全要中文 历经...
  • #include int main(){ int a,b,c; char yes[]="YES";...//字符数组允许存储中文,每个中文字符占用两个char类型的空间 scanf("%d%d%d",&a,&b,&c);//scnaf()中谨记格式输入,非需求输入类型的数据均不会被接收
  • C语言如何实现中文模糊...2006年09月06 - 各位大侠,我刚学c语言不久,遇到这样一个问题,就是如果我要通过输入字符查询一定结果,如包含部分字符,或者多过实际字符,就像百度搜索一样,得到各种我想要的结果,或者...
  • 前几天看到一道统计输入文本中的文字的数目的题,一开始以为是统计英文,后来才发现是统计中文汉字的数目(毕竟统计英文字母这种事,咱也会),原题如下: 题目上有两个要求:输入、统计 以C语言为例: 要求一:...
  • 输入在一行中给出一个长度不超过 1000 的字符串。字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母,以回车结束(回车不算在内)。 输出格式: 在一行中输出出现频率最高的那个英文字母及其出现...
  • 申明:以下图片均来自c primer plus(第五版)中文版! 1.字符串和字符: 2.strlen()与sizeof(): 3.宏定义#define: 4.const将一个变量声明变成常量声明: 5.系统定义的明显常量:
  • 1042. 字符统计(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 请编写程序,找出一段给定文字中...
  • 格式-指向以空字符结尾的字符串的指针,指定如何读取输入。格式字符串由。非空白多字节字符除%以外:格式字符串中的每个这样的字符只会从输入流中消耗一个完全相同的字符,或者如果流中的下一个字符不相等,则会...
  • 1.3.2. 格式输出函数printf()和格式输入函数scanf()....................................................3 1.4. 习题............................................................................................
  • 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型...
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边...在运行中输入"regedit",找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor****2.右键-**新建**,选择“**字符串值**”,“名称”列填写“**aut
  • 《你必须知道的495个C语言问题》,作者:【美】Steve Summit,翻译:孙云、朱群英。出版社:人民邮电出版社,ISBN:978-7-115-19432-9/TP。PDF 格式,大小 19MB。 内容简介: *全球C语言程序员集体智慧的结晶 *...
  • C语言 藏头诗

    千次阅读 2019-12-29 22:10:09
    输入为一首中文藏头诗,一共四句,每句一行。注意:服务器是linux,一个汉字占3个字节。 输出 取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。 样例输入 Copy 一叶轻舟向东流 帆...
  • 从屏幕上输入一个字符,如果不是英文字母,输出“这不是英文字母,请重新输入”,然后重新输入字符,如果是英文字母,以大写字母的形式输出字母表中它前面的字符和后面的字符,如果输入字符为‘a’或‘A’,输出...
  • C语言基础

    2021-01-24 22:30:33
    基本数据类型 ----变量的定义 int a ; // int整形 程序执行这句语句的时候,系统会在存在中开辟一...这里的字符指的是英文字符中文是无法用一个字节去存储的。 输入输出 输入处处函数的声明都包含在<stdio.h>
  • C语言的数据类型

    2020-11-04 09:01:02
    (特别注意中文文字和中文字符都是两个字节,不能算字符,用char是非法的) 关键字为char,是character的简写。 整数型(int) 描述整数,整数在计算机上是准确表示的,如123,456,-123等。关键字为int是integer...
  • C语言大全第4版(高清PDF中文版)

    热门讨论 2011-06-07 09:23:56
    C语言正是这样的基础。世界上的许多程序代码是在C上运行的。C++正是在此基础上建立的,其语法构成了Java的基础。然而,如果C仅是其他语言的起点,它就会成为有趣但却遭到遗弃的语 第一部分 C语言基础 第1章 C语言...
  • 千字文c语言

    2012-10-30 23:28:05
    请编写一个程序,从输入中读取一篇中文文章,并统计出该文章中 ASCII 字符以外的重复出现的每一个字重复出现的次数。 文章使用 UTF-8 编码,可能会出现任何可以用 UTF-8 编码表示的字符(不限于中文)。 文章中...
  • 但是不知道什么原因输入中文“一”的时候,计算出来的会是一个字符(原谅我没有深究……)不知道有没有人跟我一样。 //判断一个字符是不是中文。 -(BOOL)isChinese:(NSString*)c{  int strlength =...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

c语言输入中文字符

c语言 订阅