如何将子字符串从 Swift 传递给 C?

How to pass substring from Swift to C?

我有一个值为“7438754876*567”的变量。我从字符串中得到了这个,因为substring.I想把这个值传递给c函数。

void getRechargePinFromDestination(char* rechargeNumber)
{
    setRechargeValue(rechargeNumber);
}

因为我已经声明为char,swift把它当作一个Int8.How我可以通过这个value.Anyone请提前帮助me.Thanks

如果 C 函数不改变传递的字符串,那么您应该将参数声明为 const char*:

void getRechargePinFromDestination(const char* rechargeNumber)
{
     // ...
}

现在您可以通过先将 Swift 子字符串转换为 String 来传递它们(它会自动转换为临时 C 字符串):

getRechargePinFromDestination(String(subString))

或与

subString.withCString { getRechargePinFromDestination([=12=]) }

无论哪种情况,调用 C 函数时都会使用指向 临时 C 字符串表示形式的指针,该表示仅在函数调用期间有效。