精华内容
下载资源
问答
  • 处理字符的两种方式:字符数组和string类库 一、字符数组: 1、字符初始化: char str1[4] ={'q','w','e','r'};//字符数组,不是字符串 charstr2[5] = {'q','w','e','r','\0'};//用字符数组来存储字符...

    处理字符串的两种方式:字符数组和string类库

    一、字符数组:

    1、字符串的初始化:
    char str1[4] ={'q','w','e','r'};//字符数组,不是字符串

    charstr2[5] = {'q','w','e','r','\0'};//用字符数组来存储字符串

    以上几种方式都是正确的,在输出上也没有什么区别,都可以直接用  cout<<srt1; 这种方式来打印数组。

    但是如果这样写:

    charst3[3] = {"qwe"};//用字符数组存储字符串常量

    是错的,因为"qwe"是字符串常量,系统会自动在后面加上'\0',必须留出一位用来存储'\0'来表示字符串的结束;

     

    利用cin初始化数组:

    注意两点:
    编译器会自动在最后加
    '\0',用户输入时编译器通过空格和回车以及tab来确定一个字符串的结束。

    测试:如果定义一个字符数组(足够长),利用cin获取值,再验证字符串后面会不会自动加'\0'?
    代码:

    #include<iostream>
    using namespace std;
    
    int main(int argc,char** argv) {
    chara[10];// = {'q','w','e','r'};
    cin>>a;
    int b= (int)a[3];
    cout<<b;
    return0;
    }


    方法:先后输入三个字符和四个字符。

    结果:第一次输出0'\0'ASCII码值),第二次输出的是最后一位字符的ASCII码值。即会自动加'\0'

    这里有一个问题:如果定义数组长度为3,但是在用户输入两个以上字符时,vs会报错,devcpp不会报错。

    如何解决想要录入带空格的字符串呢?

    getline

    这是一个可以录入一行字符的函数,遇到回车即停止,并且用'\0'替代输入队列的回车。

    cin.getline(str:数组名,length:想要录入的长度)

    如果输入长度大于length-1(编译器需要一位来存储'\0'),则多余部分不录入。

    getline函数的返回值类型还是cin,所以getline函数可以连续调用,如:cin.getline(str1,10).getline(str2,20);

    get

    getline用法几乎相同,唯一区别就是利用get不会替代掉输入队列的回车,而是将其保留下来,所以当再次调用时就会因为第一个字符就是回车而让这次没有录入字符。

     

    二、string类:

    字符数组的缺点:1、无法实现数组的动态定义(数组的大小必须在编译时确定,就是说必须在编写时就要确定数组的大小,用户无法定义。)

                               2、不安全,容易读取到数组接线以外

    string类初始化字符串:

    使用string类必须在头文件中包含<string>

    string str1;//初始化字符串长度为0
    string str2 = "hello";//定义时直接初始化
    cin>>str1;//利用cin初始化字符串变量,字符串大小根据用户输入长度来定(解决了字符数组的弊端)
    
    掌握最简单的一个用法,“+”法,可以对字符串进行拼接。更多用法移步:cpp——string常用函数用法总结
    #include <iostream>
    using namespace std;
    
    
    int main(int argc, char** argv) {
    	string str1;
    	string str2 = "hello!";
    	cout<<"请输入一个名字:\n";
    	cin>>str1;
    	cout<<str1 +"  " + str2 ;
    	
    }




    展开全文
  • 1. 什么是全角和半角? 全角–指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角...在系统内部,以上种字符是作为基本代码处理,所以用户输...

    1. 什么是全角和半角?

    • 全角–指一个字符占用两个标准字符位置。
      汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。

    • 半角–指一字符占用一个标准的字符位置。
      通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。

    2. 全角与半角各在什么情况下使用?

    • 全角占两个字节,半角占一个字节。

    • 半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节。
      在编程序的源代码中只能使用半角标点(不包括字符串内部的数据)
      在不支持汉字等语言的计算机上只能使用半角标点(其实这种情况根本就不存在半角全角的概念)

    • 对于大多数字体来说,全角看起来比半角大,当然这不是本质区别了。

    3. 全角和半角的区别

    • 全角就是字母和数字等与汉字占等宽位置的字。半角就是ASCII方式的字符,在没有汉字输入法起做用的时候输入的字母数字和字符都是半角的。

    • 在汉字输入法出现的时候,输入的字母数字默认为半角,但是标点则是默认为全角,可以通过鼠标点击输入法工具条上的相应按钮来改变。

    4. 关于“全角”和“半角”:

    • 全角:是指中GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号。
    • 半角:是指英文件ASCII码中的各种符号。
    展开全文
  • 首先要明确,虽然有三种前缀(无前缀,前缀u,前缀b),但是字符串的类型只有两种(str,bytes),实验如下: 根据程序以及以上运行结果,发现无前缀,和前缀u,构造出来的字符串常量,一样的。类型一样str,...

    假设读者已经了解了什么叫字符集,什么叫编码,什么叫解码。

    首先要明确,虽然有三种前缀(无前缀,前缀u,前缀b),但是字符串的类型只有两种(str,bytes),实验如下:

                 

    根据程序以及以上运行结果,发现无前缀,和前缀u,构造出来的字符串常量,是一样的。

    类型一样是str,长度一样是3,==判断也是返回true。is判断也是返回true。

    其实,这里是因为,python3中,字符串的存储方式都是以Unicode字符来存储的,所以前缀带不带u,其实都一样。

    结论:字符串常量,前缀带不带u,都是一样的


    不管是utf-8,还是gbk,都可以理解为一种对应关系(若干个十六进制数<——>某个字符):

          

    所以可以发现任何str类型的字符串,在经过encode('utf-8')后,就是通过utf-8这种编码解码方式(两种方向),将Unicode字符转换为对应的以字节方式存储的若干十六进制数。

    根据如上程序以及结果,可以发现,utf-8用三个十六进制来表示一个中文字符,而gbk用二个十六进制来表示一个中文字符。

    结论:encode()函数根据括号内的编码方式,把str类型的字符串转换为bytes字符串,字符对应的若干十六进制数,根据编码方式决定


    既然知道了,str实际存储的是Unicode字符,那么也可以Unicode编码来存储str,形如\u1234:

    发现\u后面跟四个十六进制数,就可以代表一个Unicode字符,同样的,前缀带不带u都一样。

         

    结论:str类型的字符串,每个字符用字符本身或者\u1234,来表示都可以,后者则是直接是Unicode编码。但打印时都是打印字符本身


    bytes字符串的组成形式,必须是十六进制数,或者ASCII字符:


    提示错误:bytes只能包含ASCII字符。

    在打印bytes字符串时,某些正常字符和一些转义字符可以打印出来,比如:字母数字和‘\n’换行符。别的就只能以原来的方式存在。


    还可以对bytes取索引,所以这里bytes也可以用for循环来迭代了,因为也是可迭代对象。

    取索引,将所在元素的数,转换为十进制数。

    代码:

    oath = '我爱妞'
    print(type(oath))
    print(len(oath))
    
    oath1 = u'我爱妞'
    print(type(oath1))
    print(len(oath1))
    
    print(oath==oath1)
    
    
    utf8 = oath.encode('utf-8')
    print(type(utf8))
    print(len(utf8))
    print(utf8)
    
    gbk = oath.encode('gbk')
    print(type(gbk))
    print(len(gbk))
    print(gbk)
    
    
    out = open('test.txt','w',encoding = 'utf-8')
    
    test = u'\u5220\u9664'
    print(len(test))
    print(test)
    test1 = test.encode('utf-8')
    print(test1)
    print(type(test1))
    
    out.write(test)
    out.close()
    

    展开全文
  • 全角字符半角字符区别

    千次阅读 2018-03-08 14:05:33
    全角/半角字符?A 什么是全角和半角? (1)全角--指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角字符。...在系统内部,以上种字符是作为...

    全角/半角字符?


    A 什么是全角和半角?
    (1)全角--指一个字符占用两个标准字符位置。 
    汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。
    
    (2)半角--指一字符占用一个标准的字符位置。
    通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。
    
    B 全角与半角各在什么情况下使用?
    全角占两个字节,半角占一个字节。
    半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节。
    在编程序的源代码中只能使用半角标点(不包括字符串内部的数据)
    在不支持汉字等语言的计算机上只能使用半角标点(其实这种情况根本就不存在半角全角的概念)
    
    对于大多数字体来说,全角看起来比半角大,当然这不是本质区别了。
    
    C 全角和半角的区别
    全角就是字母和数字等与汉字占等宽位置的字。半角就是ASCII方式的字符,在没有汉字输入法起做用的时候输入的字母数字和字符都是半角的。
    
    在汉字输入法出现的时候,输入的字母数字默认为半角,但是标点则是默认为全角,可以通过鼠标点击输入法工具条上的相应按钮来改变。
    
    D 关于“全角”和“半角”: 
    全角:是指中GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号。
    半角:是指英文件ASCII码中的各种符号。
    展开全文
  • java中io读写,主要有两种方式,字节流和字符流。其中有一条规则字节流适合读写影像类无内容无汉字文件,而字符流适合处理文件内容中含有中文文件。大家是否也像我一样对这条规则有过疑问呢?网上查看io读写...
  • 字符型数据中,用最多就是Char与Varchar两种类型。前面的是固定长度,而后面的是可变长度。现在我们需要考虑的是,在什么情况下使用Char字符型数据,什么情况下采用Varchar字符型数据。在这部分内容中,我就跟...
  • 数组字符方法

    2020-06-22 19:46:20
    数组特殊的变量,它能够一次存放一个以上的值。 (1)、数组方法 1、arr.concat() //合并个数组 2、arr.join()//将数组转换成字符串,不写默认以','分割; 3、arr.reverse()//将数组元素顺序反转 4、arr....
  • 答:我们能够了解到,我们人类能够理解的是字符的高等标识符,计算机智能识别类似于0和1组成标识符,那么我们人类和计算机沟通,一定需要某种媒介来支持,来进行两种标识符相互转换。例如: 1 10 -> ...
  • 首先要明确,虽然有三种前缀(无前缀,前缀u,前缀b),但是字符串的类型只有两种(str,bytes),实验如下:根据程序以及以上运行结果,发现无前缀,和前缀u,构造出来的字符串常量,一样的。类型一样str,长度一样...
  • 全角/半角字符

    2021-01-25 11:21:46
    A 什么是全角和半角? (1)全角–指一个字符...在系统内部,以上种字符是作为基本代码处理,所以用户输入命令和参数时一般都使用半角。 B 全角与半角各在什么情况下使用? 全角占个字节,半角占一个字节。 半
  • 数组可以拥有字符方法,字符串拥有数组方法,而 json 同时拥有以上两种方法,是不是很神奇?其实我倒是喜欢管这种方法叫做「数据类型欺骗」。首先说一下 js 中两个比较接近数据,一个叫数组,一个叫 json。...
  • int level = Integer.parseInt(operatorInfo.get(4).toString());... 以上是两种常用转化方法,但是第二种在有些情况下行不通,会报错,页面无法正常运行,具体二者有什么区别,我暂时不清楚 以后碰到类似问题最
  • 什么是全角和半角?

    2010-11-03 15:03:00
    什么是全角和半角? (1)全角--指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角字符...在系统内部,以上种字符是作为基本代码处理,所以用户...
  • 什么是全角和半角

    2007-04-07 11:52:00
    A 什么是全角和半角? (1)全角---指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角字符。...在系统内部,以上种字符是作为基本代码处理...
  • A 什么是全角和半角? (1)全角---指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角字符。...在系统内部,以上种字符是作为...
  • 什么是全角和半角? (1)全角--指一个字符占用个标准字符位置。 汉字字符和规定了全角英文字符及国标GB2312-80中图形符号和特殊字符都是全角字符...在系统内部,以上种字符是作为基本代码处理,所以用户...
  • 字符型数据中,用最多就是 Char与Varchar两种类型。前面的是固定长度,而后面的是可变长度。现在我们需要考虑的是,在什么情况下使用Char字符型数据,什么情况下采用 Varchar字符型数据。一、VARCHAR与CHAR...
  • Symbol对象是什么

    2020-12-27 09:27:49
    符号特殊、不可变数据类型,它可以作为对象属性标识符使用。符号对象一个对符号原始数据类型隐式对象包装器。 <ul><li> 类型 <p></p><pre><code>javascript let sym = Symbol(); // ...
  • 说明:修改用户密码一般有两种方式,一种通过命令password修改,另一种通过语句alter user实现,如果要修改他人密码,必须要具有相关权限才可以 用法: 方式一 password [用户名] 方式二 alert user 用户名...
  • 字符型数据中,用最多就是Char与Varchar两种类型。前面的是固定长度,而后面的是可变长度。现在我们需要考虑的是,在什么情况下使用Char字符型数据,什么情况下采用Varchar字符型数据。在这部分内容中,我就跟...
  • 什么是广义表、广义表及定义详解

    千次阅读 2019-03-17 19:46:02
    但需要注意的是以上两种数据存储形式绝不会出现在同一个数组中。例如,我们可以创建一个整形数组去存储 {1,2,3},我们也可以创建一个二维整形数组去存储 {{1,2,3},{4,5,6}},但数组不适合用来存储类似 {1,{1,2,3}}...
  • 写SQL时对空值处理

    2018-12-26 18:32:10
    在平时开发数据仓库ETL,或者写一段简单SQL时,如果发现某个表select出来数据值,那么,当用该字段为...以上两种情况,表象都空,但是,在作为SQL条件进行关联和查询时,第一个需要用is null进行判断...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 279
精华内容 111
关键字:

两种以上的字符是什么