【问题标题】:Treat NSString as an array pointer arithmetic将 NSString 视为数组指针算术
【发布时间】:2016-06-02 19:41:15
【问题描述】:

有什么方法可以将NSString 视为一个数组,就像使用C 字符串一样,使用指针算法循环遍历NSString?我正在尝试做一个简单的strstr 而不使用内置的Objective C 方法,所以我需要一个C 样式数组来循环。如果有更好的数据结构可以使用,请告诉我。

【问题讨论】:

  • @"somestring".UTF8String ...然后摆弄它(我指的是摆弄它,不要写入内部存储器)
  • 更好地使用-getBytes:maxLength:enocding:创建具有定义生命周期的副本。然而,为了什么?如果使用-characterAtIndex: 循环是性能问题,则应先尝试IMP
  • 你应该用一个清楚的例子来更新你的问题。

标签: objective-c arrays nsstring


【解决方案1】:

你可以像访问c字符串数组一样

NSString *string = @"string";

for (NSInteger i=0; i<string.length; i++) {
    printf("%c\n",string.UTF8String[i]);
    // or
    printf("%c\n",[string characterAtIndex:i]);
}

输出将如下所示

s
s
t
t
r
r
i
i
n
n
g
g

【讨论】:

    【解决方案2】:

    查看[NSString characterAtIndex:] 方法以访问特定索引处的字符,就像[NSArray objectAtIndex:]

    NSString *test = @"Hello World";
    for (NSUInteger i = 0; i < test.length; i++)
        unichar c = [test characterAtIndex:i];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-14
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多