A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

OC中的字符串和C语言的字符串有什么区别啊, 现在自己弄糊涂了,
  char *str = "jack-love-rose";
        
        for (int i = 0; i < 8; i++) {
            printf("%c",str[i]);
               
        }


C语言可以这样一个一个输出来 ,那OC怎么输出啊

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
  1. #import <Foundation/Foundation.h>
  2. //#include <stdio.h>
  3. int main()
  4. {
  5.     //char *str = "jack-love-rose";
  6.     NSString *str = @"jack-love-rose";
  7.     /*
  8.     for (int i = 0; i < 8; i++) {
  9.         printf("%c",str[i]);
  10.         
  11.     }
  12.      */
  13.     NSLog(@"%@", str); // 用OC的方法一行搞定
  14. }
  15. // 记住OC是面向对象的,能用OC尽量用OC。
复制代码
回复 使用道具 举报
如果要遍历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中的每个字符串
    }



回复 使用道具 举报
主要区别再OC必须在字符串前加上@
@感觉似乎是OC得特征吧,不过在安卓上似乎也要使用@
回复 使用道具 举报
char *str = "jack-love-rose";
这里str指针指向的是字符串的首地址,可以用printf("%s", str);输出
使用%s输出时,是以'\0'为结束标志。
OC的字符串是对象,可以使用NSLog输出。
NSString *str = @"jack-love-rose";
NSLog(@"%@", str);
回复 使用道具 举报
C是面向过程的编程语言,在C中字符串就是个字符数组,遍历字符串,就是把数组中的每个元素输出就可以了
OC是面向对象的编程语言,在OC中字符串是一个对象,遍历字符串,需要考虑把对象中的每一个字符输出,需要调用对象的方法(characterAtIndex)来获取每个位置的字符来输出,就像3楼写的那样。
回复 使用道具 举报
Jine 中级黑马 2014-3-30 21:45:00
7#
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(@"%@", 函数);

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马