美文网首页
字符串和字符的区别"A"与'A'

字符串和字符的区别"A"与'A'

作者: imkakaxi | 来源:发表于2017-06-07 14:10 被阅读0次

假定你要把一个字符常量初始化为字母 A
可使用下列初始化把字符 A 赋给 grade;
char grade = 'A';
单引号中的一个字符是 C 的一个字符常量,编译器遇到‘A’时会将其转换为相应的 编码值,其中单引号是必不可少得且不可用双引号替代。
继续看

char broiled; //声明一个 char 变量
broiled = 'A'; //可以
broiled=A; //不可以!T被看作一个变量
broiled = "A"; // 不可以,“T”被看作一个字符串```


如果不使用单引号,编诇器会将 A 规为一个变量名;如果使用双引号,编诇器将其 规为一个字符串。

那么字符和字符串的内在区别在哪里?

#C规定以字符'\0'作为字符串结束标志# 
'\0'是一个ASCII码为0的字符(当然它并不是字符'0'),它不会引起任何控制动作,也不是一个可显示的字符。而字符串"A"实际包含2个字符:'A'和'\0'

那么如果我们想用字符串 来赋值变量呢?

C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。

定义: char c[10]

字符型与整型互相通用,因此 int c[10] 也可以定义字符数组。但由于两种类型分配字节不同, 用整型来定义会浪费空间, 另外这样定义实际意义也不大, 只是为了说明其合法性。

 最简单的方法即逐个赋值: char c[10]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'}; 10个字符分别赋绐c[0]到c[9]10个元素。

初值个数小于数组长度,则只将这些字符赋绐数组中前面的元素,其余元素自动定为空字符(即'\0')。

可以用字符串常量来初始化字符数组;

char c[]="I am happy";    #*注意此时数组的长度不是10,而是11,因为系统自动加上了'\0'结束符*#

####  字符数组的输入输出 

-  逐个字符输入输出。用格式符"%c"输入或输出一个字符。

- 字符数组的输出
先来看一段代码的表现

char * a = "aaa";
char b[] = {'a','a','a','\0','a','a','a','\0'};//中间有结束符
char c[] = {'a','a','a','a','a','a'};//无结束符
char d[] = {'a','a','a','a','a','a','\0'};//有结束符

printf(" a = %s \n b = %s\n c = %s\n d = %s\n",a, b,c,d);
结果:

a = aaa
b = aaa
c = aaaaaa\232�
d = aaaaaa

那么可以得出一些结论


1.  将整个字符串一次输入或输出。用"%s"格式符,意思是输出字符串(String)。例如:

char c[]="china";
  printf("%s", c);```

  1. 如果一个字符数组中包含一个以上'\0',则遇第一个'\0'时输出就结束。
  2. 无结束符时,可能会打出奇奇怪怪的东西(取决于内存上的内容,同样遇到\0结束输出), **所以一个受控的字符串应该加入结束符 **

相关文章

  • 30.2 String类的==及equals()区别 字符串获

    == 与 eqlals()区别 字符串获取 说下 String.concat 和 +的区别concat 将指定字符...

  • String(字符)篇

    1.字符串的一些问题 2.字符串属性和方法 字符串属性 字符串方法 javascript == 与 ===区别

  • JavaScript - json字符串解析

    json字符串解析 JavaScript 字符串与 JSON 字符串最大的区别在于,JSON 字符串必须使用双引号...

  • Groovy:集合字符串与循环

    字符串与循环 字符串 单引号默认是String类型的 单引号和双引号的区别 闭包惰性求值 多行字符串 String...

  • Groovy基础

    字符串 groovy与Java字符串的区别是,groovy的字符串拥有运算能力,单引号和双引号都可以定义一个字符串...

  • Go语言:"" 与 `` 包裹字符串的区别

    "" 与 `` 包裹字符串的区别 解析: 使用 "" 包裹的字符串 会解析 字符串中的 转义符 使用 `` 包裹的...

  • SQL命令集锦

    一、过滤null和空字符串 查询表中某字段不为null或不为空字符串的数据数量 null与空字符串主要区别如下: ...

  • ruby-字符串与符号

    字符串(String类)与符号(Symbol)这两种变量类型的特点和区别: 字符串和符号,都是Ruby中表示文本的...

  • object-c 基础十三 【NSMUtableString】可

    可变字符串(NSMutableString)和不可变字符串(NSString)的区别; 理解:顾名思义,可变字符串...

  • Swift--字符串--02

    字符串基础 字符串在OC与Swift中的区别:在OC中字符串类型是NNString,在Swift中字符串类型是St...

网友评论

      本文标题: 字符串和字符的区别"A"与'A'

      本文链接:https://www.haomeiwen.com/subject/ixiofxtx.html