конкатенация строк в C - PullRequest
3 голосов
/ 09 июня 2009

Мне было интересно, есть ли способ добавить значение в строку, не как 1 + 1 = 2, а как 1 + 1 = 11.

Ответы [ 5 ]

9 голосов
/ 09 июня 2009

Я думаю, вам нужно объединить строки:

#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

6 голосов
/ 09 июня 2009

Чтобы объединить более двух строк, вы можете использовать sprintf, например,

char buffer[101];
sprintf(buffer, "%s%s%s%s", "this", " is", " my", " story");
1 голос
/ 09 июня 2009

'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);
1 голос
/ 09 июня 2009

Попробуйте взглянуть на API strcat. Имея достаточно места в буфере, вы можете добавить одну строку в конец другой.

char[50] buffer;
strcpy(buffer, "1");
printf("%s\n", buffer); // prints 1
strcat(buffer, "1");
printf("%s\n", buffer); // prints 11

Справочная страница для strcat

0 голосов
/ 09 июня 2009

strcat (s1, s2). Следите за размерами буфера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...