C语言之字符串的定义和strlen的运用

字符串的定义

字符串的定义通常有三种不同的情况,你属于哪种呢?
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’就停止了计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值