首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Objective字符串转换为C字符串?

如何将Objective字符串转换为C字符串?
EN

Stack Overflow用户
提问于 2013-10-28 18:34:19
回答 3查看 496关注 0票数 0

我需要把C-字符串转换成NSString。

我该怎么做?

我知道怎么把它变成另一种方式,

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

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

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 18:37:15

const char *buffer = [hello UTF8String];会做你想要的。

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

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

当然,也有其他方法来完成同样的事情。

票数 7
EN

Stack Overflow用户

发布于 2013-10-28 18:52:55

代码语言:javascript
复制
NSString* str = [NSString stringWithUTF8String:(const char *)]

代码语言:javascript
复制
NSString* str = [NSString stringWithCString:(const char *) encoding:(NSStringEncoding)]

代码语言:javascript
复制
NSString* str = [NSString stringWithCharacters:(const unichar *) length:(NSUInteger)]
票数 3
EN

Stack Overflow用户

发布于 2013-10-28 18:45:11

试着做这样的事情:

代码语言:javascript
复制
- (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;
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19642474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档