如何检查C数组中的空字符串

时间:2014-09-16 15:34:26

标签: objective-c c

我有一个C数组,声明为char * arrayOfVarNames[3];

此数组由一些api填充,此数组中的字符串再次由objective-C方法使用。

我想知道在传递给objective-C方法之前,arrayOfVarNames [3]中是否有空字符串。 NSString *tempString = [NSString stringWithCString:arrayOfVarNames[i] encoding:NSUTF8StringEncoding]; 无论如何要检查空字符串?

3 个答案:

答案 0 :(得分:2)

一个简单的if声明:

NSString *tempString = nil;
if (arrayOfVarNames[i]) {
    // It's not NULL
    tempString = [NSString stringWithCString:arrayOfVarNames[i] encoding:NSUTF8StringEncoding];
} else {
    tempString = @""; // or some other appropriate action
}

答案 1 :(得分:0)

一行代码解决方案:

NSString *tempString = NULL == arrayOfVarNames[i] ? nil : [NSString stringWithCString:arrayOfVarNames[i] encoding:NSUTF8StringEncoding];

答案 2 :(得分:0)

根据您对空字符串的含义,您可以测试:

  • 指针为NULL!p
  • 指向空字符串的指针:!*p

请注意,某些接口会将这些情况作为可互换的处理,因此您必须将它们都接受为空字符串。