Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/68: Рейтинг темы: голосов - 68, средняя оценка - 4.84
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
1

QString to char[]

18.10.2013, 09:09. Показов 13171. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как перевести QString в char[100](именно в char, а не в char*).
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2013, 09:09
Ответы с готовыми решениями:

QString в char*
Доброго времени суток. Я пытаюсь вставить в массив char элемент(символ), который повторяется в...

QString -> char *
Не судите меня строго, знаю что такие приведения не в стиле Qt и можно забыть о старых сишных...

Из Qstring в char *
Доброго времени суток! Проблема следующая. Так получилось, что имеется функция (сторонняя), которая...

QString to Char
Здравствуйте, в общем надо из LineEdit вытащить строку и записать в char, я понимаю надо сделать...

6
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
18.10.2013, 09:56 2
Никак, если я не ошибаюсь. Ты не можешь получить массив из функции не вернув указатель на этот массив. Возможно я не прав
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
18.10.2013, 10:27  [ТС] 3
Цитата Сообщение от Flassie Посмотреть сообщение
Никак, если я не ошибаюсь. Ты не можешь получить массив из функции не вернув указатель на этот массив. Возможно я не прав
Ну, тут я вижу два выхода:
1) Индусский метод:
C++ (Qt)
1
2
3
4
5
6
QString str = "Hello my little world";
char a[100];
for(int i = 0; i<str.size(); i++)
{
    char a[i] = str.at(i).toAscii();
}
2) Метод с использованием memcpy():
C++ (Qt)
1
memcpy(a,str.toAscii(),str.size());
0
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
18.10.2013, 10:35 4
Видимо массив char[100] вы хотите использовать где-то ещё. Так вот, имя вашего массива char n[100] -- это синоним для указателя на первый элемент массива, т.е. передавая такой элемент как массив в функцию компилятор заменяет его на указатель на первый элемент этого массива, потому-то, кстати, (в общем случае массивов, т.е. не только массивов char) в Си в подобные функции часто нужно передавать ещё и размер массива или в самой функции следить за наличием '\0', если это массив символов. Значит в этом вашем где-то ещё (например какой-то функции) необходимо передать именно указатель на массив.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
18.10.2013, 10:39 5
C++ (Qt)
1
2
3
char c[100];
QStrint s;
strncpy(c, qPrintable(s), 99);
2
224 / 219 / 77
Регистрация: 24.09.2012
Сообщений: 511
Записей в блоге: 2
18.10.2013, 10:44 6
Xantrax, в последней версии Qt 5.1 нет метода toAscii().
0
20 / 20 / 2
Регистрация: 28.11.2012
Сообщений: 366
18.10.2013, 11:43  [ТС] 7
Цитата Сообщение от Байт Посмотреть сообщение
C++ (Qt)
1
2
3
char c[100];
QStrint s;
strncpy(c, qPrintable(s), 99);
Раз уж мы пользуемся библиотекой Qt, то может воспользуемся функцией
C++ (Qt)
1
char * qstrncpy ( char * dst, const char * src, uint len )?
Xantrax, в последней версии Qt 5.1 нет метода toAscii().
Извините, не уточнил, у меня 4.8.5.
2
18.10.2013, 11:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2013, 11:43
Помогаю со студенческими работами здесь

QString to char[]
Добрый день. Необходимо строку разобрать на символы и поместить в массив символов. Пытаюсь...

QString to const char*
сабж. кто знает как реализовать - помогите :) из гугла пробовал std::string str =...

Char* to QString не в конструкторе
char *mes1 = &quot;Привет&quot;; char *mes2 = &quot;Пока&quot;; Qstring *str = new Qstring(); str-&gt;... как...

qstring to unsigned char*
как же много еще я не знаю... сохраняю значение unsigned char* ucTTT; ucTTT = new unsigned...


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

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