欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

字符串对象的创建

程序员文章站 2022-09-15 20:02:29
c语言字符串">C语言字符串 字符串必须用双引号包含 字符串中的每个字符占一个字节,ASCII C语言字符串的末尾有一个隐藏的’\0’ 打印C语言的字符串...
字符串必须用双引号包含 字符串中的每个字符占一个字节,ASCII C语言字符串的末尾有一个隐藏的’\0’ 打印C语言的字符串用 %s 占位符,传递字符串的首地址即可

OC字符串对象(NSString)

字符串前面加上 @ 打印OC的字符串对象用 %@ OC字符串中对象中的每一个字符都是uichar字符,uichar字符符合unicode编码 Utf8编码存储字符串,不需要考虑字符存储
#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        char *cstring = "Hello World 中国";
        printf("%c\n",cstring[7]);
        printf("%ld\n",sizeof("Hello World"));

        //ocstring是一个对象指针,指向常量区的字符串对象
        NSString *ocstring = @"Hello World 中国";//存储在常量区中
        NSLog(@"ocstring = %@",ocstring);

        //字符串的创建——构造方法
        //用C语言的字符串构造一个OC字符串对象
        NSString *OCStr = [[NSString alloc] initWithUTF8String:"Welcome to China"];
        NSLog(@"OCStr = %@",OCStr); //NSLog默认换行

        //格式化构造OC字符串对象
        NSString *OCStr1 = [[NSString alloc] initWithFormat:@"%s##%d##%@","Hello",888,@"China"];
        NSLog(@"OCStr1 = %@",OCStr1);

        //用传递的字符串对象构造新的字符串对象
        NSString *OCStr2 = @"上海火车站";
        NSString *OCStr3 = [[NSString alloc] initWithString:OCStr2];
        NSLog(@"OCStr3 = %@",OCStr3);

        //用C语言的字符串构造OC字符串对象,该方法主要用于iOS开发
        NSString *OCStr4 = [[NSString alloc] initWithCString:"中国教育" encoding:NSUTF8StringEncoding];
        NSLog(@"OCStr4 = %@",OCStr4);

        //创建字符串对象——类方法,将C语言字符串转换成OC字符串对象
        NSString *OCStr5 = [NSString stringWithUTF8String:"Hello World!"];
        NSLog(@"OCStr5 = %@",OCStr5);

        NSString *OCStr6 = [NSString stringWithString:OCStr2];
        NSLog(@"OCStr6 = %@",OCStr6);

        NSString *OCStr7 = [NSString stringWithFormat:@"%d,%.2f,%s",125,45.69,"Hello World"];
        NSLog(@"OCStr7 = %@",OCStr7);

        //用C语言的字符串来创建OC字符串对象
        NSString *OCStr8 = [NSString stringWithCString:"I am a good boy 来自中国" encoding:NSUTF8StringEncoding];
        NSLog(@"OCStr8 = %@",OCStr8);

        //字符串其它用法
        //求字符串的长度
        NSString *str = @"welcome 中国";
        NSInteger len = [str length];
        NSLog(@"len = %li",len);

        //获取指定下标位置的字符
        unichar ch = [str characterAtIndex:3];
        NSLog(@"ch = %C",ch); //%c 打印ASCII码字符,%C 打印unicode字符
    }
    return 0;
}