NSString

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        NSString *str1=@"Hello ";
        NSString *str2=@"World!";
        NSString *str3;
        NSString *str4;
        NSLog(@"%ld",[str1 length]);
        //求字符串有效长度 返回值NSUInteger
        
        str3=[str1 stringByAppendingString:str2];
        //创建一个新的字符串并返回 该字符串由两个字符串拼接而成 原来两个字符串并不改变
        str4=[str1 stringByAppendingFormat:@"World!"];
        //格式化创建一个新的字符串并返回 该字符串由两个字符串拼接而成 原来两个字符串并不改变
        NSLog(@"%@",str1);
        NSLog(@"%@",str2);
        NSLog(@"%@",str3);
        NSLog(@"%@",str4);
        
        NSString *str5=[NSString stringWithString:str1];
        //将一个字符串复制到另一个字符串 其实质就是将一个字符串的地址赋值给另一个字符串 两者是同一个地址 参数只能是字符串变量 参数如果是字符串常量会警告字面冗长 提示直接把字符串常量赋值给另一个字符串变量
        NSLog(@"%p",str1);
        NSLog(@"%p",str5);
        
        NSString *str6=[NSString stringWithFormat:@"Hello "];
        //类似NSLog()函数 与stringWithStrng:不同在于会在堆上重新分配内存 而不是将一个字符串的地址赋值给另一个字符串 两者不是一个地址
        NSLog(@"%p",str1);
        NSLog(@"%p",str6);
        
        char str[10]="iceiceice";
        NSString *str7=[NSString stringWithUTF8String:str];
        //使用C字符串创建新字符串对象
//        NSString *str7=[NSString stringWithUTF8String:"iceiceice"];
        NSLog(@"%p",str);
        NSLog(@"%p",str7);
        
        NSString *str8=[NSString stringWithCString:str encoding:NSUTF8StringEncoding];
//        NSString *str8=[NSString stringWithCString:"iceiceice" encoding:NSUTF8StringEncoding];
        //与stringWithUTF8String:不同在于可以自己选择编码格式 参数NSStringEncoding是编码格式 一般使用UTF8格式
        NSLog(@"%p",str);
        NSLog(@"%p",str8);
        
        NSString *URLStr=@"http://www.hupu.com";
        //内容是网址的字符串对象
        NSURL *url=[NSURL URLWithString:URLStr];
        //将字符串对象转换成网址对象
        NSError *error=nil;
        //错误对象赋空
        NSString *str9=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
        //error:参数传入error对象地址 所以是个二级指针
        NSLog(@"%@",URLStr);
        NSLog(@"%@",error);
        NSLog(@"%@",str9);
        
        NSLog(@"%@",[str1 isEqualToString:str2]?@"YES":@"NO");
        //比较两个字符串对象是否相等 返回值BOOL类型
        
        if ([str1 compare:str3]==NSOrderedAscending) {
            NSLog(@"%@<%@",str1,str3);
        }
        else if ([str1 compare:str3]==NSOrderedSame) {
            NSLog(@"%@==%@",str1,str3);
        }
        else if ([str1 compare:str3]==NSOrderedDescending) {
            NSLog(@"%@>%@",str1,str3);
        }
        //比较两个字符串对象大小 返回值NSComparisonResult
        
        if ([[str1 uppercaseString] caseInsensitiveCompare:[str1 lowercaseString]]==NSOrderedSame) {
            NSLog(@"%@==%@",[str1 uppercaseString],[str1 lowercaseString]);
        }
        //比较两个字符串对象大小 非敏感比较
        
        NSLog(@"%@",[str3 uppercaseString]);
        //将字符串转换为大写 原字符串不改变
        NSLog(@"%@",str3);
        
        NSLog(@"%@",[str3 lowercaseString]);
        //将字符串转换为小写 原字符串不改变
        NSLog(@"%@",str3);
        
        NSLog(@"%@",[str7 capitalizedString]);
        
        NSLog(@"%s",[str3 UTF8String]);
        //将字符串对象转换成C字符串
        NSLog(@"%s",[str3 cStringUsingEncoding:NSUTF8StringEncoding]);
        //与UTF8String不同在于可以自己选择编码格式
        
        NSString *str10=@"I am a ios programmer!";
        NSString *subStr;
        subStr=[str10 substringToIndex:4];
        //创建一个子串 从开头到到索引 不包括索引 原字符串不改变
        NSLog(@"%@",subStr);
        subStr=[str10 substringFromIndex:5];
        //创建一个子串 从索引到结尾 包括索引 原字符串不改变
        NSLog(@"%@",subStr);
        
        NSRange range1;
        range1.location=7;
        range1.length=3;
        //NSRange结构体两个成员变量location和length
        subStr=[str10 substringWithRange:range1];
        //创建一个子串 通过指定范围创建 原字符串不改变
        NSLog(@"%@",subStr);
        subStr=[str10 substringWithRange:NSMakeRange(7, 3)];
        //NSRange可以直接通过NSMakeRange()函数设置
        NSLog(@"%@",subStr);
        
        NSRange range2=[str10 rangeOfString:@"ios"];
        NSLog(@"loction=%ld,length=%ld",range2.location,range2.length);
        //在字符串中查找指定子串范围 location和length都是NSUInteger
        
        NSRange range3=[str10 rangeOfString:@"iceiceice"];
        if (range3.location==NSNotFound) {
            NSLog(@"%ld",range3.location);
        }
        //如果location等于NSNotFound(无穷大) 没有找到 NSNotFound就是NSInteger的最大值9223372036854775807
        if (range3.length==0) {
            NSLog(@"SubString not found");
        }
        //或者如果length等于0 也是没有找到
        
        NSString *str11=@"http://www.baidu.com";
        NSString *str12=@"速度与激情7.rmvb";
        NSLog(@"%@",[str11 hasPrefix:@"http://"]?@"YES":@"NO");
        //判断字符串是否以参数为前缀
        NSLog(@"%@",[str12 hasSuffix:@".rmvb"]?@"YES":@"NO");
        //判断字符串是否以参数为后缀
        
        unichar ch=[str10 characterAtIndex:11];
        NSLog(@"%c",ch);
        //返回索引位置字符 unichar就是unsigned short NSString就是由unichar组成
        
        NSString *str13=@"12345";
        NSLog(@"%ld",[str13 integerValue]);
        //返回NSInteger
        NSLog(@"%f",[str13 doubleValue]);
        //返回double
        NSLog(@"%d",[str13 boolValue]);
        //返回BOOL
        
        Fraction *frac1=[[Fraction alloc] init];
        [frac1 setNumerator:1 andDenominator:2];
        NSLog(@"%@",frac1);
        Fraction *frac2=[[Fraction alloc] init];
        [frac2 setNumerator:1 andDenominator:3];
        NSLog(@"%@",frac2);
        //%@显示对象可以显示它的全部内容 也就是调用description
        //默认情况下 description方法继承于NSObject类 返回对象所属类名和对象地址 可以覆写用来更方便地显示对象
        Fraction *result=[frac1 add:frac2];
        NSLog(@"%@+%@=%@",frac1,frac2,result);

CH341A编程器是一款广泛应用的通用编程设备,尤其在电子工程和嵌入式系统开发领域中,它被用来烧录各种类型的微控制器、存储器和其他IC芯片。这款编程器的最新版本为1.3,它的一个显著特点是增加了对25Q256等32M芯片的支持。 25Q256是一种串行EEPROM(电可擦可编程只读存储器)芯片,通常用于存储程序代码、配置数据或其他非易失性信息。32M在这里指的是存储容量,即该芯片可以存储32兆位(Mbit)的数据,换算成字节数就是4MB。这种大容量的存储器在许多嵌入式系统中都有应用,例如汽车电子、工业控制、消费电子设备等。 CH341A编程器的1.3版更新,意味着它可以与更多的芯片型号兼容,特别是针对32M容量的芯片进行了优化,提高了编程效率和稳定性。26系列芯片通常指的是Microchip公司的25系列SPI(串行外围接口)EEPROM产品线,这些芯片广泛应用于各种需要小体积、低功耗和非易失性存储的应用场景。 全功能版的CH341A编程器不仅支持25Q256,还支持其他大容量芯片,这意味着它具有广泛的兼容性,能够满足不同项目的需求。这包括但不限于微控制器、EPROM、EEPROM、闪存、逻辑门电路等多种类型芯片的编程。 使用CH341A编程器进行编程操作时,首先需要将设备通过USB连接到计算机,然后安装相应的驱动程序和编程软件。在本例中,压缩包中的"CH341A_1.30"很可能是编程软件的安装程序。安装后,用户可以通过软件界面选择需要编程的芯片类型,加载待烧录的固件或数据,然后执行编程操作。编程过程中需要注意的是,确保正确设置芯片的电压、时钟频率等参数,以防止损坏芯片。 CH341A编程器1.3版是面向电子爱好者和专业工程师的一款实用工具,其强大的兼容性和易用性使其在众多编程器中脱颖而出。对于需要处理25Q256等32M芯片的项目,或者26系列芯片的编程工作,CH341A编程器是理想的选择。通过持续的软件更新和升级,它保持了与现代电子技术同步,确保用户能方便地对各种芯片进行编程和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值