Конкатенация строк - C (СИ) (76594)
Формулировка задачи:
Результатом работы программы является табличка. Конечно, я могу её просто вывести через несколько printf,
но мне нужно скопировать её в какой-нибудь буффер, чтобы потом я мог её вывести, как на stdout, так и, например, на принтер.
В таком случае:
естественно outbuf будет постоянно перезаписываться.
Вопрос: есть ли в C какая-нибудь конкатенация строк? Т.е. каким образом мне собрать мою табличку в буффер, и как потом его вывести?
char *outbuf;
outbuf = new char [1000];
sprintf(outbuf,"\n________________________________________________________");
sprintf(outbuf,Rus("\n#\tПоле 1\t|\tПоле 2\t|\tПоле 3\t|\t\n"));
sprintf(outbuf,"________________________________________________________|\n");
...Решение задачи: «Конкатенация строк»
textual
Листинг программы
outbuf+strlen(outbuf)
Объяснение кода листинга программы
Код, который вы предоставили, не является полным, поскольку он не содержит объявления переменных и не имеет тела функции. Однако, основываясь на том, что вы предоставили, можно предположить, что этот код выполняет операцию конкатенации строк. Вот возможное объяснение того, что происходит в этом коде:
outbuf- это буфер, в который будет помещен результат операции конкатенации.strlen(outbuf)- это функция, которая возвращает длину строкиoutbuf.outbuf + strlen(outbuf)- это выражение, которое может быть интерпретировано как попытка увеличить длину строкиoutbufна значениеstrlen(outbuf). Однако, такая операция не имеет смысла в контексте языка C, поскольку увеличение длины строки не изменяет саму строку. Вместо этого, вам, возможно, нужно было использовать функциюreallocдля изменения размера буфераoutbufили функциюstrcatдля добавления строки кoutbuf. В любом случае, чтобы дать более точное объяснение, мне нужно больше информации о контексте и цели этого кода.