一、C语言认为char属于int,char型的数值计算实质是ASCII码
二、C语言没有布尔类型,除0位假外,其余均为真
三、C语言没有string类型
/*在C语言中并没有char类型的常量(但是在C++中却有,字符常量都是char类型),其实是用int表示char,字符型与整型相比只是更加节省内存。
有符号的字符表示-128~127,无符号字符表示0~255。char相当于signed char还是unsigned char取决于编译器。
字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先将char型数据以隐形的方式转化为int型数据再进行相加减运算。因此,由字符型数据在内存的存储方式来看,字符型数据在做数字运算时实际上是对字符本身对应的ASCII码进行相应的数值运算。
---------------------
作者:zhjqxy
来源:CSDN
原文:https://blog.csdn.net/zhjqxy/article/details/52975140
版权声明:本文为博主原创文章,转载请附上博文链接!*/
#include<stdio.h>
int Index(char* S,char* T,int pos){
int i=pos;
int j=1;
int k=S[0];
//printf("%d\n",k);
while(i<=S[0]&&j<=T[0]){
if(S[i]==T[j]){
++i;
++j;
}else{
i=i-j+2;
j=1;
}
}
if(j>T[0])
return i-T[0];
else
return 0;
}
int main(){
char a[5]={5,'I','k','e','y'};/*既然char和int本质都是整数,为什么还要作区分呢?
因为字符的个数相对较少,因而char型变量的存储单元可以比int型变量的存储单元小。其实就是提出一种char型变量专门存储字符,方便程序员的数据选择。*/
char b[4]={4,'k','e','y'};
int p=Index(a,b,1);
printf("%d\n",p);
return 0;
}