我strValue
为NSString
,我想将strValue
的内容复制到其他地方。
该地点为mstrValue
,即NSMutableString
。 mstrValue
的空间已经分配。
我想知道如何才能将memcpy
或strcpy
用于此目的。
如果不可能,我想知道其他方法。
答案 0 :(得分:11)
您的问题不是很明确,但如果您想将可变字符串的值设置为其他字符串,请执行以下操作:
[mstrValue setString:strValue];
如果要附加值,请执行以下操作:
[mstrValue appendString:strValue];
这两个假设在某些时候你做过:
mstrValue = [[NSMutableString alloc] init];
查看NSMutableString的文档。有很多方法可以更新它的价值。
答案 1 :(得分:0)
我总是喜欢使用[NSString stringWithFormat@"%@", strValue];
,因为那样你就可以清楚地获得一个新的自动释放字符串,并且可以正确处理字符串“strValue”。
NSMutableString *mstrValue = [NSMutableString stringWithFormat:@"%@", strValue];
OR
NSMutableString *mstrValue = [NSMutableString stringWithString:strValue];
答案 2 :(得分:0)
除非你想正确处理字符串编码,否则你应该避免使用memcpy或strcpy。
答案 3 :(得分:0)
是对象分配:
#include<iostream>
using namespace std;
class Box{
private:
int d;
public:
Box(int i){
cout << "Constructor" << endl;
d = i;
}
Box(const Box &old){
cout << "Copy Constructor" << endl;
d = old.d;
}
int getd(){
return d;
}
~Box(){
cout << "Destructor" << endl;
}
Box operator+(const Box& op){
Box c(15);
c.d = d + op.d;
return c;
}
};
int main(){
Box a(10);
Box b = a;
Box c = a+b;
cout << c.getd() << endl;
return 0;
}
你可以做到。