/*
方法一:(类方法)
将C语言的字符串转换为OC字符串对象.
+ (nullable instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;
nullable:代表返回的对象可能是nil
如题:
将c字符串转换为oc字符串(创建一个对象,对象的名字要求用户从控制台输入,而用户输入的串只能是c串,故而需要转换)
*/
#import <Foundation/Foundation.h>
#pragma mark -
#pragma mark 人类的声明和实现
//声明
@interface YYPerson : NSObject
{
@public
NSString *_name;
int _age;
}
- (void)sayHi;
@end
//实现
@implementation YYPerson
- (void)sayHi
{
NSLog(@"哈喽,大家好,我叫%@我今年%d岁了", _name, _age);
}
@end
int main(int argc, const char * argv[]) {
//创建对象
YYPerson *xiaoming = [YYPerson new];
//赋值属性,姓名要求用户从控制台输入
//定义一个char数组来接收用户输入
char name[100] = {0};
//提示用户输入姓名
NSLog(@"请输入姓名: ");
//接收用户输入
gets(name);
//将用户输入的c字符串转换为oc字符串
NSString *name1 = [NSString stringWithUTF8String:name];
//赋值属性
xiaoming->_name = name1;
int age = 0;
NSLog(@"请输入年龄: ");
scanf("%d", &age);
xiaoming->_age = 18;
[xiaoming sayHi];
return 0;
}
/*
方法二:(类方法)
将变量拼接成一个新的OC字符串.
+ (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
NSString *name = @"小明";
int age = 18;
NSString *sayHi = [NSString stringWithFormat:@"大家好,我叫%@,%d岁了", name, age];
NSLog(@"%@", sayHi);
return 0;
}
/*
方法三: (对象方法)
获取字符串的长度
- (NSUInteger)length;
NSUInteger即unsigned long
方法四: (对象方法)
得到制定下标的字符
- (unichar)characterAtIndex:(NSUInteger)index;
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//获取字符串的长度
//返回值类型是NSUInteger,使用%lu输出.
//- (NSUinteger)length;
NSString *name = @"xiao中国ming";
//对象方法length的返回值是NSUInteger即unsigned long;
NSUInteger len = [name length];
NSLog(@"len = %lu", len);
//得到制定下标的字符
//返回值类型是unichar使用%C输出
//- (unichar)characterAtIndex:(NSUInteger)index;
unichar ch = [name characterAtIndex:4];
NSLog(@"ch = %C", ch);
return 0;
}
/*
方法五: (对象方法)
判断两个字符串的内容是否相等;
- (NSComparisonResult)compare:(NSString *)string;
方法六: (对象方法)
只判断两个字符串是否相同;
- (BOOL)isEqualToString:(NSString *)aString;
*/
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
//判断两个字符串的内容是否相同
//- (NSComparisonResult)compare:(NSString *)string.
//返回值是一个枚举值
//NSOrderedAscending:当前字符串比传入的字符串小
//NSOrderedSame:一样
//NSOrdereddescending:当前字符串比传入的字符串大
NSString *str1 = @"jack";
NSString *str2 = @"jack";
NSComparisonResult res = [str1 compare:str2];
switch(res)
{
case NSOrderedAscending:
NSLog(@"当前字符串比传入的字符串小");
break;
case NSOrderedSame:
NSLog(@"一样");
break;
case NSOrderedDescending:
NSLog(@"当前字符串比传入的字符串大");
break;
}
//只判断两个字符串是否相同
//- (BOOL)isEqualToString:(NSString *)aString;
//返回值是BOOL类型的
BOOL RES = [str1 isEqualToString:str2];
if(RES == 0)
{
NSLog(@"NO");
}
else
{
NSLog(@"YES");
}
return 0;
}