字符和字符串

简介: 一.案例:代码展示二.如何给字符串赋值

字符和字符串

 

目录:

一.案例:代码展示

二.如何给字符串赋值

 

 

一,   案例:代码展示

/**

*问题一:字符变量可以用来存放整数吗?

int main( ){
char a =
C;
printf("%c = %d\n
,a,a);
return 0;

}

*输出的结果如下图:

image.png

*假设此处的字符是否也运用了查表的原理?

*答案是肯定的。

*查表查询的是标准 ,这个表格是设计者在设计之初

*为了便于计算机存储数据设置的。

*标准ASCII字符表使用7位二进制数来表示所有的大写和小写字母,*数字09、标点符号,以及在美式英语中使用的特殊控制字符。

*其中,ASCI字符表上的数字0~31以及127(33个)分配给了控*制字符,用于控制像打印机等一些外围设备:

image.png

ASCII字符表上的数字32~126分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现:

image.png

*之前我们编译的程序输出的C的值也可以在ASCII 字符表上找到对*应的值

image.png

*新需求:

int main( ){
char a = 70, b= 105, c=115 ,d=104, e= 67;
printf("%c%c%c%c%c\n
,a,b,c,d,e);
return 0;

}

*打印的结果如下:

image.png

*为什么输入的是数字,打印的却是字符呢?

因为我们在输出的时候*指定了字符C,所以系统会自动去扫描ASCII字符表,*打印的FishC的结果出来。

结论,字符类型实际上就是一个特殊的*整型。这里可以通过查看下表来理解整型的取值范围。区别在于,

*对于整型而言,不写unsigned,系统会默认成是int类型。在C*言里并没有规定字符串类型char类型是char还是unsigned char

*细节就是这些规定都是由编译系统自己决定。

 

 

举例:一位程序员需

*要使用某个字符串类型来存放身高这项数据。此时的编译系统会给*他分配char还是unsigned char呢?如果是unsigned char 则刚

*够用,下面就用一个简单的程序来演示一下:

image.png

 

int main( ){
char height;height = 170;
printf(""
小甲鱼的身高是%d厘米 \n", height)
return 0;

}

*运行的结果如下图所示:

image.png

*这里给我们的经验教训是不要去想当然,注意程序的跨平台性。

*需要注意到它的取值范围是0~255,注意到这个细节后的输出结果

*为:

image.png

 

 

二,   如何给字符串赋值

  • 字符串

-char 变量名[数量]

//可以通过索引号来获取对应的内存空间。


  • 声明字符串

-char name [5]

//索引号是从0开始计算的,故它的值为0,12,3,4.


  • 给字符串赋值:

name[0] = F;

name[1] = i;

name[2] = s;

name[3] = h;

name[4] = C;


  • 定义字符串:

Char name[5] = {F,i,s,h,c};

 

实例:

Int main()

{

Char a [5] = {F,I,s,h,c};

Print {%s\n,a};

Print{Hello\n};

Return 0;

}

//运行结果出现乱码:

image.png

//报错原因,缺少了\

//修改后的代码如下所示:

Int main()

{

Char a [6] = {F,I,s,h,c,\0};

Print {%s\n,a};

Print{Hello\n};

Return 0;

}

//运行结果恢复正常:

image.png

//对该部分代码进行如下优化,省去了数的环节:

Int main()

{

Char a [] = {FishC};

Print {%s\n,a};

Print{Hello\n};

Return 0;

}

//这里不用添加\,系统会自动给用户进行补充。

//运行结果如下图:

image.png 

相关文章
|
2月前
|
存储 C语言
字符输入输出函数
字符输入输出函数
17 2
|
7月前
|
存储 编译器
C 字符串
C 字符串。
28 0
|
2月前
|
自然语言处理
字符范围
字符范围
27 2
|
2月前
|
存储 编译器 C++
c++字符串
c++字符串
22 0
|
8月前
|
C语言
向字符串添加空格
首先我们可以算出s数组的大小-len,也可以直接得到spaces的大小-即要添加的空格数,那么我们要创建的数组大小是len+spacesSize吗? 不是,应该是len+spacesSize+1,这里的加一是存放一个'\n' 这里呢 我们可以写一个for i循环,用来把s中的元素放到arr里面,然后在外面定义一个falg用来充当arr的下标,存进一个元素falg++,再定义一个j=0,当i == space[j]就存放空格,每存放一个空格++.
44 0
|
存储 编译器
C中的字符串
C中的字符串
74 0
|
存储 Shell 程序员
字符和字符串|学习笔记
快速学习字符和字符串
66 0
字符和字符串|学习笔记
字符串加空格
给定一个字符串,在字符串的每个字符之间都加一个空格。 输出修改后的新字符串。
123 0