1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221
1

Перевод Char[] в одну строку

02.10.2012, 09:53. Показов 1610. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ДОбрый день, подскажите пожалуйста, как можно char *a[] перевести в одну String?
спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2012, 09:53
Ответы с готовыми решениями:

Сложение двух динамических массивов char* в одну строку
В массивы вводятся данные, масcивы вида : int n,k; char *a,*b; a=new char; b=new char;...

Перевод int в char (строку)
Есть код я покажу только части для указания на проблему int c=0; char a={' ',' '};...

Как присоединить одну строку к другой типа const char *
Создаю группу файло, передаю путь. Нужно соединить строки. const char *path="C:\\Program...

Универсальный перевод в одну строку
Помогите, кто может! Необходимо написать некое уравнение в одну строчку которое будет переводить...

9
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
02.10.2012, 09:59 2
Но ведь строка в Си -- это и есть массив типа char, а char *a[] -- это есть указатель на массив типа char (грубо говоря, это переменная, которая содержит в себе адрес первого (нулевого) элемента массива).
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
02.10.2012, 11:01 3
Цитата Сообщение от newsrc Посмотреть сообщение
а char *a[] -- это есть указатель на массив типа char
не, это массив указателей на char
1
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.10.2012, 11:50 4
Elena_Tu, что вы подразумеваете под "одной String"? И когда будете отвечать, руководствуйтесь тем, что мы в данный момент в разделе чистого Си.
newsrc, в дополнение к ответу accept, указатель на массив чаров объявляется так:
C
1
char (*arr_ptr)[ARR_SIZE];
0
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
02.10.2012, 11:56 5
Значит ТС нужно массив указателей переписать в одну строку, т.е. в один массив типа char.
0
silent_1991
02.10.2012, 12:11
  #6

Не по теме:

newsrc, а вот у меня есть сомнения на сей счёт, Вполне может оказаться, что ТС нужно зполнить плюсовый std::string, борландовский стринг или ещё какой. И тут уже стоит задуматься, куда перенести тему. Так что подожду-ка я ответа самого ТСа.

0
UriahHeep
02.10.2012, 13:02
  #7

Не по теме:

silent_1991, вот и мне интересно, жду.

0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
02.10.2012, 13:23 8
Цитата Сообщение от silent_1991 Посмотреть сообщение
newsrc, а вот у меня есть сомнения на сей счёт, Вполне может оказаться, что ТС нужно зполнить плюсовый std::string, борландовский стринг или ещё какой.
вряд ли

Цитата Сообщение от Elena_Tu Посмотреть сообщение
ДОбрый день, подскажите пожалуйста, как можно char *a[] перевести в одну String?
собственно, kazak уже все сказал
1
1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221
02.10.2012, 20:27  [ТС] 9
Спасибо за обратный перепост, но если бы я знала как это использовать strcpy, strcat я бы не создавала новую тему
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,749
03.10.2012, 14:59 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#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;
}
1
03.10.2012, 14:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2012, 14:59
Помогаю со студенческими работами здесь

POST запрос, перевод из char[] в строку
Здравствуйте! Вот есть такой кодик: bool POST() { HINTERNET hInternet =...

Перевод содержимого ячейки StringGrid в строку char.
Здорова. Помогите плиз перевести UnicodeString в массив символов char (строка). Имеем текст в...

Удалить перевод строк, чтобы все было в одну строку
Удалить перенос строки, чтобы все было написано в одну строку. Вот код, но он не работает,...

Перевод из int в char* внутри функции работает, а если вернуть строку то нет
Надо перевесит int в char* в методе класса, и вернуть char*. Перепробовал кучу всего результат 1 и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru