Мне было интересно, есть ли способ добавить значение в строку, не как 1 + 1 = 2, а как 1 + 1 = 11.
Я думаю, вам нужно объединить строки:
#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; }
от: http://irc.essex.ac.uk/www.iota-six.co.uk/c/g6_strcat_strncat.asp
Чтобы объединить более двух строк, вы можете использовать sprintf, например,
char buffer[101]; sprintf(buffer, "%s%s%s%s", "this", " is", " my", " story");
'strcat' является ответом, но подумал, что должен быть пример, который явно затрагивает проблему размера буфера.
#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);
Попробуйте взглянуть на API strcat. Имея достаточно места в буфере, вы можете добавить одну строку в конец другой.
char[50] buffer; strcpy(buffer, "1"); printf("%s\n", buffer); // prints 1 strcat(buffer, "1"); printf("%s\n", buffer); // prints 11
Справочная страница для strcat
strcat (s1, s2). Следите за размерами буфера.