【问题标题】:Converting char array into NSString object将 char 数组转换为 NSString 对象
【发布时间】:2012-02-18 16:31:49
【问题描述】:

根据我的任务,我必须通过控制台接收用户的输入,以便与NSString 一起使用。

我现在有

char* name[100]; // declaring char array
NSString* firstName; // declaring the NSString

printf("Please enter first name \n");
printf("=> ");
scanf("%s", &name);

firstName = [NSString stringWithCString:name encoding:NSASCIIStringEncoding];

这可行,但我收到此警告

不兼容的指针类型将“char [100]”发送到类型参数 '常量字符 '

我不想在代码中出现这些错误,我还想提一下我使用的是 Xcode 4.2。

谁能向我解释为什么我会遇到这些错误,如果我能克服它们?

非常感谢!

【问题讨论】:

    标签: objective-c c nsstring


    【解决方案1】:

    改变这个:

    char* name[100];
    

    char name[100];
    

    第一种形式创建一个包含 100 个指针 的数组,指向char。第二个创建一个包含 100 个 char 元素的数组。可能令人困惑的是,在最后一种情况下,name 实际上是一个指针,指向这 100 个 char 元素中的第一个。

    【讨论】:

      【解决方案2】:

      如用 NSLog 打印的,被赋值为初始化一个 NSString。

      NSLog(@"%s", arrayChar);
      NSString *str = [NSString stringWithFormat:@"%s", arrayChar];
      NSLog(@"Array to String: %@",str);
      

      【讨论】:

        猜你喜欢
        • 2012-02-29
        • 2011-04-04
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 2011-06-08
        相关资源
        最近更新 更多