C++ STD::字符串代码到C代码 我有一些C++代码,我发现它确实符合我的需要,但是我需要C语言,我不知道C是如何做到的,所以我希望有人能帮我。 < C++代码是:
std::字符串值const char*valueBegin,const char*valueEnd 这是使用字符串::字符串构造函数: 模板字符串InputIterator开始,InputIterator结束 有人能帮我把这个转换成C代码吗C++ STD::字符串代码到C代码 我有一些C++代码,我发现它确实符合我的需要,但是我需要C语言,我不知道C是如何做到的,所以我希望有人能帮我。 < C++代码是:,c++,c,string,C++,C,String,std::字符串值const char*valueBegin,const char*valueEnd 这是使用字符串::字符串构造函数: 模板字符串InputIterator开始,InputIterator结束 有人能帮我把这个转换成C代码吗 谢谢
谢谢
C++代码从另一个字符串的子字符串创建新字符串。C中类似的功能是strndup:
假设指针算法在您的情况下有意义:
strncpy( value, valueBegin, valueEnd-valueBegin );
假设指针算法在您的情况下有意义:
strncpy( value, valueBegin, valueEnd-valueBegin );
他的示例将值创建为自动变量,但您假设值是指向有效内存的指针。他的示例将值创建为自动变量,但您假设value是指向有效内存的指针。malloc的内存也需要释放。为了不引起警告,strncpy的第二个参数需要强制转换为:const char*@kdbdallas-valueBegin的类型是什么?我认为这是一个字符,这意味着你不需要为strncpy设置演员阵容。如果不是char*或const char*,您可能需要重新计算第一行中的减法运算。malloc的内存也需要释放。此外,为了不引起警告,strncpy的第二个参数需要强制转换为:const char*@kdbdallas-valueBegin的类型是什么?我认为这是一个字符,这意味着你不需要为strncpy设置演员阵容。如果不是char*或const char*,则可能需要在第一行中重新计算减法。
strncpy( value, valueBegin, valueEnd-valueBegin );