Blog Archives

Concatenate string in Objective-C

Unfortunately, this is not as straight forward as it seems it should be. This really comes down to roughly two approaches in my opinion:

stringByAppendingString approach:

NSString *robot= @"Ronnie";
NSString *robotname = [robot stringByAppendingString:@" is the name of a robot."];

strigWithFormat approach:

NSString *robot= @"Ronnie";
NSString *robotname= @" is the name of the a robot.";
NSString *robotknowledge = @" knows eight languages.";
[NSString stringWithFormat:@"%@/%@/%@", robot, robotname, robot, robotknowledge];

References
StackOverflow, http://stackoverflow.com/questions/510269/how-do-i-concatenate-strings-in-objective-c
cocoadevcentral.com, “Learn Objective-C”, http://cocoadevcentral.com/d/learn_objectivec/

Advertisement

C++ concatenate strings with stream or sprint

There are many different ways to achieve this, but in my opinion the best method for something this commonly used is a solution that does not require additional external dependencies.. However, see reference at the bottom of this post for some other good solutions which are optimized for speed and brevity.

//declare our variables to concatenate
std::string name="somename";
int age = 100;
std::string result;

//if it's for basic console output
std::cout << "name:" << name << " age:" << age;

//using stringstream
std::stringstream ss;
ss << "name:" << name << " age:" << age;
result = ss.str();
std::cout << result;

//using ostringstream
std::ostringstream os;
os << "name:" << name << " age:" << age;
std::cout << os.str();

//using strintf
char numstr[21]; // enough to hold all numbers up to 64-bits
sprintf(numstr, "%d", age); //convert age to string
result = name + numstr; //concatenate

Stackoverflow (forum), http://stackoverflow.com/questions/191757/c-concatenate-string-and-int