字符串是C言语中常用的一种数据方式。包含了ASCII码取值规模是0~127。ASCII是American Standard Code for Information Interchange(美国信息**规范代码)。曾经我有一位年青的搭档,是一位爱国主义青年。每逢国家邦交出现问题时恨不得用中文编程。其实美国科学家效果也是归于全人类的。这么想也就豁然了。
ASCII根本包含了编程所需悉数字符。并且每一个ASCII码与char型数据是等价的。比方:
char ch;
ch = 0x30;
ch = 0x30与 ch = ‘0’ 是彻底等价的。由于字符0(不是数字0)的值便是48,也便是0x30。所以字符彻底能够进行算术运算和逻辑运算。
比方 ch = ‘0’ + 2; 是彻底能够运算的。运算成果ch值为 ‘2’,也便是0x32。已然char数据是是0~127整型数据。那么逻辑运算也是彻底能够的。
比方: ‘a’ > ‘b’ 运算成果为真。‘b > ‘a’成果就一定位假了。’2’是单个字符。假如将字符与数组结合起来在信息沟通方面当然十分有用。
记住当年运用DOS6.22时,程序在运转过程中假如要输出一个提示,那么运用字符串当然十分便利。Printf函数的参数就有一个字符串。
比方:
char MSG[5] = { ‘h’, ‘a’, ‘p’,’p’, ‘y’};
该数组与char MSG[5] = {0x68, 0x61, 0x70, 0x70, 0x79}彻底等价。能够经过下表索引到每一个元素。假如需求输出该数组,以下代码能够完成。
#include
char MSG[5] = { ‘h’, ‘a’, ‘p’,’p’, ‘y’};
void main( )
{
char i;
for( i =0; i < sizeof(MSG); i++)
printf("%c", MSG[i]);
printf("%n");
for( i =0; i < sizeof(MSG); i++)
printf("%0x ", MSG[i]);
printf("%n");
}
编译后运转输出成果为:
happy
68 61 70 70 79
字符串与数组的区别是字符串由一个隐含的完毕符’\0’。’\0’的值为0 ,是ASCII表的榜首个字符,即NULL。假如要界说一个字符串很简单。char MSG[6] = { ‘h’, ‘a’, ‘p’,’p’, ‘y’,’\0′};这样生命是没有任何问题。可是过于杂乱。一般的声明办法如是:char MSG[ ] = "happy"; MSG占用了6个字符串。由于’\0’也要占用一个字节空间。已然每个字符串都有一个完毕符。所以依据完毕符就能够判别一个字符串是否完毕。以下代码能够输出字符串happy.
char MSG[ ] = "happy";
void main( )
{
char i=0;
while(MSG[i])
printf("%c", MSG[i++]);
}
在本处咱们是为了着重’\0’值为0.其实以下代码更便利。
void main( )
{
printf("%s", MSG);
}