Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Elena_Tu
1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221
1

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

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

ДОбрый день, подскажите пожалуйста, как можно char *a[] перевести в одну String?
спасибо
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 09:53
Ответы с готовыми решениями:

Как склеить 3 строки (char*) в одну
Всем здрасте =) Как склеить 3 строки (char*) в одну. Это пример того как всё должно быть. ...

Массив типа char записать в одну ячейку другого массива
Добрый день, есть массив типа char. В нем в одной ячейке элемент 'a', в другой 'b'. Я создать...

Перевод из double в char
Нужно написать программу: строкой вводим 1 слагаемое, 2 слагаемое, строку для поиска. Программа...

Перевод double в char
char buff; float volt = readADC()*0.02932; // Тут в итоге получится должно 1.46 или что-нибудь...

Перевод из int в char
программа перевода из int в char, мне нужно написать эту же программу, но не используя n как...

9
UriahHeep
222 / 217 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
02.10.2012, 09:59 2
Но ведь строка в Си -- это и есть массив типа char, а char *a[] -- это есть указатель на массив типа char (грубо говоря, это переменная, которая содержит в себе адрес первого (нулевого) элемента массива).
0
accept
4841 / 3262 / 465
Регистрация: 10.12.2008
Сообщений: 10,569
02.10.2012, 11:01 3
Цитата Сообщение от newsrc Посмотреть сообщение
а char *a[] -- это есть указатель на массив типа char
не, это массив указателей на char
1
silent_1991
Эксперт С++
5025 / 3085 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
Завершенные тесты: 1
02.10.2012, 11:50 4
Elena_Tu, что вы подразумеваете под "одной String"? И когда будете отвечать, руководствуйтесь тем, что мы в данный момент в разделе чистого Си.
newsrc, в дополнение к ответу accept, указатель на массив чаров объявляется так:
C
1
char (*arr_ptr)[ARR_SIZE];
0
02.10.2012, 11:50
UriahHeep
222 / 217 / 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
Nameless One
Эксперт С++
5801 / 3451 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
02.10.2012, 13:23 8
Цитата Сообщение от silent_1991 Посмотреть сообщение
newsrc, а вот у меня есть сомнения на сей счёт, Вполне может оказаться, что ТС нужно зполнить плюсовый std::string, борландовский стринг или ещё какой.
вряд ли

Цитата Сообщение от Elena_Tu Посмотреть сообщение
ДОбрый день, подскажите пожалуйста, как можно char *a[] перевести в одну String?
собственно, kazak уже все сказал
1
Elena_Tu
1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221
02.10.2012, 20:27  [ТС] 9
Спасибо за обратный перепост, но если бы я знала как это использовать strcpy, strcat я бы не создавала новую тему
0
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10621 / 6303 / 1582
Регистрация: 25.07.2009
Сообщений: 12,023
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
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2012, 14:59

Перевод из int в char
Вылетает при запуске вот этот код void get_word(char* str, int p) { int i=0;...

Перевод из long в char и обратно
Написать функцию для перевода переменной типа long в символьную строку в двоичном представлении (...

Перевод hex в char* в том же виде
честно прошу прощения, но С++ меня избаловал + голова уже устала, и я ничего умнее не придумал как...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.