Reputation: 1319
How to concatenate strings in C, not like 1
+ 1
= 2
but like 1
+ 1
= 11
.
Upvotes: 5
Views: 17208
Reputation: 599
'strcat' is the answer, but thought there should be an example that touches on the buffer-size issue explicitly.
#include <string.h>
#include <stdlib.h>
/* str1 and str2 are the strings that you want to concatenate... */
/* result buffer needs to be one larger than the combined length */
/* of the two strings */
char *result = malloc((strlen(str1) + strlen(str2) + 1));
strcpy(result, str1);
strcat(result, str2);
Upvotes: 1
Reputation: 36977
To concatenate more than two strings, you can use sprintf, e.g.
char buffer[101];
sprintf(buffer, "%s%s%s%s", "this", " is", " my", " story");
Upvotes: 7
Reputation: 29889
I think you need string concatenation:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "Hello ";
char str2[] = "World";
strcat(str1, str2);
printf("str1: %s\n", str1);
return 0;
}
from: http://irc.essex.ac.uk/www.iota-six.co.uk/c/g6_strcat_strncat.asp
Upvotes: 10
Reputation: 754525
Try taking a look at the strcat API. With sufficient buffer space, you can add one string onto the end of another one.
char[50] buffer;
strcpy(buffer, "1");
printf("%s\n", buffer); // prints 1
strcat(buffer, "1");
printf("%s\n", buffer); // prints 11
Reference page for strcat
Upvotes: 1