NSString与C字符串之间的相互转换

代码:
[cpp]
const char *cString = "这是一个C字符串, c string";
NSString *nsstring = @"这是个NSString字符串, nsstring";
NSLog(@"cString字符串-->%s ",cString);
NSLog(@"NSString字符串-->%@",nsstring);

const char *cString2 = [nsstring UTF8String];
NSString *nsstring2 = [NSString stringWithUTF8String:cString];
NSLog(@"cString2字符串-->%s ",cString2);
NSLog(@"NSString2字符串-->%@",nsstring2);

结果:

char类型的C字符串中文在Mac系统下打印出来显示乱码,这种乱码并不是错误,是ASCII解码所导致的。

(0)

相关推荐

  • iOS开发中CAlayer层的属性以及自定义层的方法

    CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) @property CGPoint anchorPoint; 称为"定位点"."锚点" 决定着CALayer身上的哪个点会在position属性所指的位置 以自己的左上角为原点(0

  • Objective-C中字符串NSString的常用操作方法总结

    1.创建字符串 (1)常量字符串 复制代码 代码如下: NSString *string = @"i am an iOSDevTip!"; (2)常用创建方法 复制代码 代码如下: NSString *string = [[NSString alloc] init]; string = @"i am an iOSDevTip too!"; (3)用initWithString创建字符串 复制代码 代码如下: NSString *string = [[NSString

  • Objective-C中使用NSString类操作字符串的方法小结

    一.字符串切割 1.带节点的字符串,如@"<p>讨厌的节点<br/></p>"我们只想要中间的中文 处理方法: 复制代码 代码如下: NSString *string1 = @"<p>讨厌的节点<br/></p>";   /*此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处< p /等都是单独存在,不作为整个字符*/

  • IOS UI学习教程之设置UITextField各种属性

    UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互.它的主要属性设置如下: //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enu

  • NSString属性何时用strong何时用copy?

    前言 我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy.那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子. 代码验证 @property (nonatomic, strong) NSString *myStrongString; @property (nonatomic, copy) NSString *myCopyString; - (void)stringTest { NSMutabl

  • 浅谈Rails 4 中Strong Parameters机制

    要弄明白Rails 4 中Strong Parameters机制,首先我们要看看Rails3中的Parameters 在 Rails3 中创建或更新 Active Record 对象时,会有 Mass Assignment 安全问题.所以 Model 中需要列一个白名单,声明哪些属性可以被 parameter 的数据更新. Rails 3 # kings_controller.rb def create #{ name: 'David', sex:male, age: 31} @king = K

  • iOS开发中一些手写控件及其相关属性的使用

    手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: 复制代码 代码如下: [btn addTarget:s

  • iOS开发之详谈属性设置readwrite、readonly、retain、copy、assign、nonatomic

    具体详细介绍请看下文文字说明吧,本文介绍的非常详细. 1 . 可读性: readonly.readwrite @property(readwrite,....) valueType value; 这个属性是变量的默认属性,就是如果你 (readwrite and readonly 都没有使用,那么你的变量就是 readwrite属性 ) ,通过加入 readwrite 属性你的变量就会有 get 和 set 方法. property(readonly,...) valueType value;

  • 详解iOS中UIButton的三大UIEdgeInsets属性用法

    UIEdgeInsets是什么 UIEdgeInsets是什么?我们点进去看一下: typedef struct UIEdgeInsets { CGFloat top, left, bottom, right; // specify amount to inset (positive) for each of the edges. values can be negative to 'outset' } UIEdgeInsets; UIEdgeInsets是个结构体类型.里面有四个参数,分别是:

  • iOS应用开发中使UITextField实现placeholder属性的方法

    我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入.但是UITextView却没有placeholder属性. 一.猥琐的方法 如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法.思路大概是这样的: 把UITextView的text当placeholder使用. 在开始编辑的代理方法里清除placeholder. 在结束编辑的代理方法里在设置placeholder. 实现方法: 1.

随机推荐