objective c基础知识点打通草稿未完

char 可储存单个字符。将字符放入一对 单引号中就能得到 字符常量。因此,'a',';'和 '0' 都是合法的 字符常量。第一个常量表示字母 a,第二个表示分号,第三个表示字符 0,它并不等同于数字0。不要把 字符常量和 C风格的 字符串混为一谈, 字符常量是放在单引号中的单个字符,而 字符串则是放在 双引号中的任意个数的字符。前面有 @ 字符并且放在双引号中的字符串是 NSString 字符串对象。
 
      字符常量 '\n'(即换行符)是一个合法的 字符常量,尽管它似乎与前面提到的规则矛盾。出现这种情况的原因是反斜杠是 Objective-C系统中的特殊符号,实际上并不把它看成一个字符。换句话说, Objective-C 编译器将字符 '\n'看作单个字符,尽管它实际上由两个字符组成。在 NSLog 调用中可以使用 %c,以便显示 char 变量的值。
char a = 0x54;
NSLog(@"a is %c",a);//a is T
或者 char a = 'T';
char[]字符数组
char b[3] = {'0','1','2'};

char *字符指针,用以指向C string。string类型是C++特有的,obc用NSString代替。
char *a = "abds";
NSLog(@"a is %s",a);// a is abds
NSLog(@"a[0] is %c",a[0]);//a[0] is a

NSString *string1 = @"abci";
const char *b = [string1 UTF8String];//或者const char *b = (const char *)[string1 cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"b is %s",b);// b is abci
值得注意的是@"中文"支持中文,可以通过NSLog打印,但是上面的例子中,如果string1包含中文的话,程序就无法正常运行,因为格式限定符%s只支持ascii字符。要输出中文的话,只能NSLog(@"string1 is %@",string1);。

一个包含控制台输入输出的例子。支持输入中文。
char *char1 = NULL;
char1 = alloca(20);
scanf("%s",char1);
NSLog(@"you enter %@",[NSString stringWithUTF8String:char1]);



在iphone/mac开发中, unichar是两字节长的char,代表unicode的一个字符。但在xcode中,初始化unichar是个问题。如果像下面这样声明,会有warning "Multi-character character constant"。

unichar a = '国';//但是我们仍然可以利用 unichar pUnichar = L'你';的形态来实现赋值。

可以采用直接写文字编码的方式来初始化。

unichar a = 0x0100;

如果有很多个unichar怎么办?

unichar a[] = { 0x005A, 0x0065, 0x0062, 0x0072, 0x0061, 0x0000 };
一个个去查表太麻烦了。可以采取变通的方法:

unichar a[10];

NSString *aString = @"一二三四五六七八九十";

for (int i = 0; i < 10; i++)

a[i] = [aString characterAtIndex:i];

下面的例子和上面的循环具有类似的效果:

NSRange range=NSMakeRange(0,9);
[aString getCharacters:a range:range];


unichar *

 NSString *string1 = @"二好";

const unichar *b = (const unichar *)[string1 cStringUsingEncoding:NSUnicodeStringEncoding];
NSLog(@"b is %S",b);//b is 二好


unichar[]

 const  unichar pUnichar[] = {L'你',L'好',0x0000};//在iOS6中,要使用const,否则会有警告;在此前的版本中,无需const
 NSLog(@"c string(unichar):%S",pUnichar);// c string(unichar):你好





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值