Форум программистов, компьютерный форум CyberForum.ru

Конвертация char * -> WideString - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где посмотреть исходники типа string http://www.cyberforum.ru/cpp-beginners/thread251442.html
Подскажите плиз где посмотреть исходники типа string. Тоесть интересует методы работы со строками, а точнее как они устроены. Допустим string.append, insert. И интересует как устроены стандартные функции, такие как strlen, strcpy. Это реально посмотреть?
C++ принадлежность точки прямоугольнику Задача: определить,принадлежит ли точка прямоугольнику. Заданы координаты точки и вершин прямоугольника. Прямоугольник может располагаться не параллельно осям координат. Почему-то при вычислении площадей дробных чисел не получается,что не так делаю? #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> int _tmain(int argc, _TCHAR* argv) { int... http://www.cyberforum.ru/cpp-beginners/thread251431.html
Разработать процедуру или функцию, выполняющую заданную операцию над строками. Предусмотреть и описать реакцию на некорректное задание параметров. C++
Не использовать имеющиеся в языке средства обработки строк. Определить количество вхождений каждого из символов в строке s Имя процедуры/функции Numchar(s)
C++ MessageBox выводит иероглифы
MessageBox(NULL, reinterpret_cast<LPCTSTR>("Hello world"), reinterpret_cast<LPCTSTR>("windows"), MB_OK); Почему вместо строк Hello world и windows выводятся иероглифы и как от них избавится? Помогите кому не лень! Писал в Visual c++
C++ двоичные файлы http://www.cyberforum.ru/cpp-beginners/thread251405.html
Помогите, не могу сообразить как написать программу. Дан файл F, содержит сведения о датах рождения сотрудников(фамилия, число, месяц и год рождения). Найти всех сотрудников, у которых будет день рождение в данном месяце данного года и указать возраст. Реализовать на двоичных файлах.
C++ MIRACL библиотека для работы с большими числами У меня была готовая программа с консолью и ее исходники. Когда я переписывал ее под программу с формой появилась проблема. Дело в том, что в программе используется библиотека MIRACL. Там есть такой класс ECn, описанный в прилагаемых файлах. То есть я имею проект в который включен ECn.h. В данном классе участвует переменная p class ECn { epoint *p; Я использую следующий оператор: ECn&... подробнее

Показать сообщение отдельно
4ance
1 / 1 / 0
Регистрация: 02.11.2010
Сообщений: 78
04.03.2011, 12:31  [ТС]
Цитата Сообщение от bigredcat Посмотреть сообщение
Так может вам вам стоит сразу wchar_t использовать, и Unicode-функции, типа wcstok, wcslen, чем гонять туда сюда преобразования
Знал бы о таких функциях раньше - не гонял бы)
Хотя сейчас наверно буду их использовать, тк мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall TDataModule2::ADODataSet1CalcFields(TDataSet *DataSet)
{
   const int BuffSize = 30000;
   char *ptr = new char[BuffSize];
   char *p1;
   wchar_t *p2 = new wchar_t[BuffSize];
   int i = 0;
 
   wcstombs( ptr, ADODataSet1FIO->Value, BuffSize);
 
   p1 = strtok( ptr, " ");
   while( i < 2 )
   {
     p1 = strtok( NULL, " ");
     i++;
   }
 
  mbstowcs(p2, p1, BuffSize);
  ADODataSet1Name->Value = p2;
 
  delete [] ptr;
  delete [] p2;
}
Выкидывает ошибку уже на этапе прогона программы(компиляция говорит, что ошибок нет) в строке

C++
1
mbstowcs(p2, p1, BuffSize);
Указывает что p1=NULL. С циклом скорее всего проблема, но на всякий случай поуменьшаю преобразования.

Добавлено через 17 часов 50 минут
C++
1
2
3
4
5
6
7
8
9
void __fastcall TDataModule2::ADODataSet1CalcFields(TDataSet *DataSet)
{
   wchar_t **p3;
 
   **p3 = *wcstok( ADODataSet1FIO->Value, L" ");
   **p3 = *wcstok( NULL, L" ");
 
   ADODataSet1Name->Value = *p3;
}

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00402977 in module 'Project1.exe'. Write of address 00000000'. Process stopped.

Ошибка вылетает на

C++
1
**p3 = *wcstok( ADODataSet1FIO->Value, L" ");
При компиляции ошибок не даёт.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru