黑马程序员技术交流社区
标题:
OC中的字符串和C语言的字符串有什么区别啊?
[打印本页]
作者:
Silent_memory
时间:
2014-3-20 20:15
标题:
OC中的字符串和C语言的字符串有什么区别啊?
OC中的字符串和C语言的字符串有什么区别啊, 现在自己弄糊涂了,
char *str = "jack-love-rose";
for (int i = 0; i < 8; i++) {
printf("%c",str[i]);
}
C语言可以这样一个一个输出来 ,那OC怎么输出啊
作者:
Hi围城
时间:
2014-3-25 19:33
#import <Foundation/Foundation.h>
//#include <stdio.h>
int main()
{
//char *str = "jack-love-rose";
NSString *str = @"jack-love-rose";
/*
for (int i = 0; i < 8; i++) {
printf("%c",str[i]);
}
*/
NSLog(@"%@", str); // 用OC的方法一行搞定
}
// 记住OC是面向对象的,能用OC尽量用OC。
复制代码
作者:
沙洲冷
时间:
2014-3-29 23:50
如果要遍历OC字符串的话可以这样写:
#import <Foundation/Foundation.h>
int main()
{
NSString *str = @"jack-love-rose";
for(int i = 0; i<str.length; i++)\\遍历字符串str
{
unichar c = [str characterAtIndex:i];\\用字符c来保存从字符串str中读取的字符
NSLog(@"%c", c);\\输出str中的每个字符串
}
作者:
愿我能
时间:
2014-3-30 12:54
主要区别再OC必须在字符串前加上@
@感觉似乎是OC得特征吧,不过在安卓上似乎也要使用@
作者:
于清扬
时间:
2014-3-30 16:40
char *str = "jack-love-rose";
这里str指针指向的是字符串的首地址,可以用printf("%s", str);输出
使用%s输出时,是以'\0'为结束标志。
OC的字符串是对象,可以使用NSLog输出。
NSString *str = @"jack-love-rose";
NSLog(@"%@", str);
作者:
z82454642
时间:
2014-3-30 17:39
C是面向过程的编程语言,在C中字符串就是个字符数组,遍历字符串,就是把数组中的每个元素输出就可以了
OC是面向对象的编程语言,在OC中字符串是一个对象,遍历字符串,需要考虑把对象中的每一个字符输出,需要调用对象的方法(characterAtIndex)来获取每个位置的字符来输出,就像3楼写的那样。
作者:
Jine
时间:
2014-3-30 21:45
printf和NSLog区别:
1.名字不同
2.接收的参数不同
3.输出信息不同
4.NSLog会自动换行
5.引入的头文件不同
NSString是oc用的 NSString *函数 = @"……";
char是c语言用的 char *函数 = "……";
c语言中的for (int i = 0; i < 8; i++) {
printf("%c",str
);
}
oc中的 NSLog(@"%@", 函数);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2