字符串的定义
字符串的定义通常有三种不同的情况,你属于哪种呢?
1.掉渣款
int i;
char str[5]={'a','b','c','d','e'};
for(i=0;i<(sizeof(str)/sizeof(str[0]));i++){
printf("%c",str[i]);
}
这种定义方式比较的费时费力
2.经典款
int i;
char str2[5]="abcde";
for(i=0;i<(sizeof(str2)/sizeof(str2[0]));i++){
printf("%c",str2[i]);
}
这种定义方式比起上一种就稍微轻松那么一点点了,不用写一个一个的单引号了
3.升级款
int i;
char str3[]="abcdefghijklmnopqrstuvwxyz";
for(i=0;i<(sizeof(str3)/sizeof(str3[0]));i++){
printf("%c",str3[i]);
}
这种方式就显得比较明智了,不用再去数字符串有多少个,完全随着双引号内的字符改变而改变,但是这三种在阅历方式都还是很有欠缺,显得很麻烦,所以下面这种方式就一定会让大家觉得更好了,嘻嘻。
4.超级款
char* pstr="My name is Huang Yuewen";
printf("%s\n",pstr);
这种方式一目了然,所以指针在C中真的是非常非常强大,在定义字符串时完全就替代了中括号,阅历时可以直接拿来用
strlen的运用
我们都是知道了计算数组一般都是用sizeof来进行计算,可是在计算字符串时就会产生一些问题,为什么这么说呢?例如:char str[ ]="abcde"我们能看到在这个字符串当中,应该是有5个字符,但是如果用sizeof(str)/sizeof(str[0])一测就会出现问题了,它计算出来的却是6,为什么会这样呢?其实啊,在定义字符串的时候,都是默认在字符串的最后一位添加一个’\0’的,所以用sizeof的时候就会把’\0’也一起计算上去,也就有了6这个答案。所以我们在计算字符串的长度的时候就应该用strlen函数,strlen函数会把有效的字符的多少计算出来,它计算到’\0’之前,也就是遇到’\0’就停止了计算。