Перевод Char[] в одну строку - C (СИ)
Формулировка задачи:
ДОбрый день, подскажите пожалуйста, как можно char *a[] перевести в одну String?
спасибо
Решение задачи: «Перевод Char[] в одну строку»
textual
Листинг программы
#include <stdio.h> #include <string.h> /* * принимает указатель на массив строк, количество строк, указатель на строку разделиель, * указатель на буфер для склеенной строки и его длину, возвращает указатель на строку * или NULL, если строка не поместится в буфер. */ char * join(char ** words, size_t count, const char * sep, char * buf, size_t len) { size_t joined_len, i; /* проверить, что склееная строка поместится в буфер */ for ( joined_len = 0, i = 0; i < count; ++i ) joined_len += strlen(words[i]); joined_len += strlen(sep) * (count - 1) + 1; if ( joined_len > len ) return NULL; /* склейка стоки */ *buf = '\0'; for ( i = 0; i < count; ++i ) { strcat(buf, words[i]); if ( i < count - 1 ) strcat(buf, sep); } return buf; } #define COUNT 3 int main(void) { char * words[COUNT] = { "one", "two", "three" }, buf[BUFSIZ]; printf("%s", join(words, COUNT, " / ", buf, BUFSIZ)); return 0; }
Объяснение кода листинга программы
- В функции join производится склейка массива строк в одну строку с разделителем. Функция принимает указатель на массив строк, количество строк, указатель на строку разделитель, указатель на буфер для склеенной строки и его длину. Возвращает указатель на строку или NULL, если строка не поместится в буфер.
- В функции main создается массив из трех строк и буфер для склеенной строки.
- Вызывается функция join для склейки строк из массива words в буфер buf с разделителем
/
. - Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д