0

我需要将 C-String 转换为 NSString。
我该怎么做呢?
我知道如何用另一种方式转换它,

NSString *hello = @"Hello!";
const char *buffer;
buffer = [schoolName cStringUsingEncoding: NSUTF8StringEncoding];
NSLog(@"C-String is: %s", buffer);

但是,如何将Objective-C 字符串(NSString)转换为NULL-TERMINATED字符串。

谢谢!

4

3 回答 3

7

const char *buffer = [hello UTF8String];会做你正在寻找的。

现在回答新的(和非常不同的)问题:

例如,如果您有,const char *cstring = "hello world";您可以通过以下方式创建一个NSString *NSString *nsstring = [NSString stringWithFormat:@"%s", cstring];

当然,还有其他方法可以完成同样的事情。

于 2013-10-28T18:37:15.410 回答
3
NSString* str = [NSString stringWithUTF8String:(const char *)]

或者

NSString* str = [NSString stringWithCString:(const char *) encoding:(NSStringEncoding)]

或者

NSString* str = [NSString stringWithCharacters:(const unichar *) length:(NSUInteger)]
于 2013-10-28T18:52:55.470 回答
1

尝试这样的事情:

- (wchar_t*)getWideString
{
    const char* temp = [schoolName cStringUsingEncoding:NSUTF8StringEncoding];
    int buflen = strlen(temp)+1; //including NULL terminating char
    wchar_t* buffer = malloc(buflen * sizeof(wchar_t));
    mbstowcs(buffer, temp, buflen);
    return buffer;
};
于 2013-10-28T18:45:11.000 回答