A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dayuanzhang 中级黑马   /  2016-6-15 12:05  /  1803 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

怎么计算oc字符串的长度 strlen sizeof ?

6 个回复

倒序浏览
本帖最后由 1871037345 于 2016-6-16 00:09 编辑


#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {



        NSString *str = @"zhangsanfeng";
       long length = [str length];
    NSLog(@"length = %ld",length);

}
    return 0;
}


回复 使用道具 举报
oc中计算字符串长度的方法是调用NSString类的对象方法 length 具体  NSUInteger  len = [str length];
其中NSUInteger 是一个unsigned long  类型 ,打印用%lu.  可以用(int)强转. str是字符串名字.
回复 使用道具 举报
#import  <string.h>
strlen()
回复 使用道具 举报
我再多一句,字符数组   、字符串   和 字符串对象  三者本质还是有区别的。
回复 使用道具 举报
本帖最后由 M.W 于 2016-6-19 10:23 编辑
楼主提问的strlensizeof在C语言中是函数,分别是求取字符串的长度和占用的字节数。
而在OC中计算字符串的长度可以用一楼回答的方法,注意要区分函数方法两个概念,是两种解决问题不同的思想。
OC中字符串不论是纯英文、纯中文、还是中英文混合,用lenght计算长度每个字符都是1,这里要注意length是Property(属性)。
  1. <font face="宋体">@property(readonly) NSUInteger length</font>
复制代码
在OC中计算字符串的长度如:
  1. <font face="宋体">NSString *str5 = @"中国r";
  2. NSUInteger len5 = [str5 length];
  3. NSLog(@"len5 = %ld", len5); //这里每个中英文字符都占一个字符->长度为3</font>
复制代码

-- 个人拙见,如有不妥、错误之处,望见谅并纠正
回复 使用道具 举报
C语言字符串用:strlen函数计算,sizeof计算字节
OC的字面字符串对象用: length属性得到长度
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马