Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатель на С строку 
V
    Опции темы
niknor
Дата 27.5.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2006
Где: РОССИЯ, Набережны е челны

Репутация: нет
Всего: нет



никак не могу получить указатель на с-строку, дабы использовать её как массив символов
мне подсказали что надо использовать LPCSTR.. Но как я не понял smile 
PM MAIL   Вверх
zkv
Дата 27.5.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(niknor @  27.5.2007,  00:12 Найти цитируемый пост)
никак не могу получить указатель на с-строку, дабы использовать её как массив символов
мне подсказали что надо использовать LPCSTR.. Но как я не понял

LPCSTR - это ключевое слово, конечно, близко к теме, но думаю совсем не то, что вы ищите smile
Непонятно, что вам нужно, ну вот маленький пример:
Код

//заводим указатель на символ
char *pArr;
//выделяем память под строку, ее адрес будет в pArr
pArr = new char[10];
//заводим другой указатель, нацеливаем его на первый символ строки по 
//адресу, хранящемуся в pArr 
char *pSym = pArr;
//нацеливаем его на второй символ строки по 
//адресу, хранящемуся в pArr
pSym = pArr+1;
//нацеливаем его на третий символ строки по 
//адресу, хранящемуся в pArr
pSym++;
//освобождаем память, выделенную под строку:
delete []pArr;;

Так что именно ты хотел спросить? smile 
PM MAIL   Вверх
Fazil6
Дата 27.5.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(niknor @  27.5.2007,  00:12 Найти цитируемый пост)
никак не могу получить указатель на с-строку, дабы использовать её как массив символов

строка и есть массив символов
Код

void f(chsr* s)
{
   printf("%s", s);
}



   char str[] = "превед";// массив

  f(str); // тут используется как указатель

PM MAIL   Вверх
niknor
Дата 27.5.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2006
Где: РОССИЯ, Набережны е челны

Репутация: нет
Всего: нет



я имел в виду уже существующую переменную типа CString(наверное в памяти CString и хранится как массив char но как получить указатель на начало строки??), например    
Код

CString NachP;
char *b=LPCSTR(NachP);//неудавшаяся попытка))


PM MAIL   Вверх
Fazil6
Дата 27.5.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



у CString есть метод c_str() возвращающий  const char*

CString NachP;
NachP.c_str();

другое дело зачем тебе нужен этот указатель. Если ты хочешь через него изменять свой CString, то это запрещено и нужно работать подругому
PM MAIL   Вверх
DigitSphinx
Дата 27.5.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



В VS 2005 у CString нет метода 
Код

CString.c_str();

Зато есть метод 
Код

CString.GetBuffer();

Код

CString str = _T("Text");
wchar_t * ch = str.GetBuffer();

После этой команды ch будет указывать туда же куда собственная переменная m_pszData класса CString которая содержит адрес строки “Text”


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
niknor
Дата 27.5.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2006
Где: РОССИЯ, Набережны е челны

Репутация: нет
Всего: нет



просто пытался делать двойную быструю сортировку, в которой надо вытаскивать разряды, но я не знаю как это сделать через CSring, а через char всё проще..
Цитата

у CString есть метод c_str() возвращающий  const char*

CString NachP;
NachP.c_str();
другое дело зачем тебе нужен этот указатель. Если ты хочешь через него изменять свой CString, то это запрещено и нужно работать подругому

но перемещаться по символам строки можно??
PM MAIL   Вверх
vinter
Дата 27.5.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



должен быть перегружен обычный оператор индексации, так что юзай просто str[]


--------------------
Мой блог
PM MAIL WWW   Вверх
zkv
Дата 27.5.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



niknor, вот нет бы сразу нормально спросить, а то в угадайки играем smile
Код

CString str = "Hello!";
char c = str[2];

Это спрашивал?
PM MAIL   Вверх
niknor
Дата 27.5.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 21.4.2006
Где: РОССИЯ, Набережны е челны

Репутация: нет
Всего: нет



)))
спасибо всем
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.