ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Заполнение Vector
  #1  
Старый 04.02.2010, 01:10
Akum
Познающий
Регистрация: 05.01.2010
Сообщений: 32
Провел на форуме:
95565

Репутация: 5
Отправить сообщение для Akum с помощью ICQ
По умолчанию Заполнение Vector

Как правильно заполнить вектор символами из строки:
пишу так:
Код:
#include <iostream>
#include <string.h>
#include <vector>
#include <stdio.h>
using namespace std;


int main(){

vector<string> letters;
 string st ="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^abcdefghijklmnopqrstuvwxyz{|}~абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
  string st_d[300];

 for (unsigned int i = 0;i<=strlen(st.c_str());i++){
  st_d[i]=st[i];

for (unsigned int i =0;i<=strlen(st.c_str());i++){
letters.push_back(st_d[i]);
cout<<st_d[i]<<endl;
}
}
При выводе за место русских букв пишет знаками!
Как исправить ?
Спасибо за помощь!
 
Ответить с цитированием

  #2  
Старый 04.02.2010, 01:13
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

setlocale думаю тебе поможет
 
Ответить с цитированием

  #3  
Старый 04.02.2010, 02:23
Akum
Познающий
Регистрация: 05.01.2010
Сообщений: 32
Провел на форуме:
95565

Репутация: 5
Отправить сообщение для Akum с помощью ICQ
По умолчанию

Цитата:
Сообщение от Gar|k  
setlocale думаю тебе поможет
И я думаю!
Но я уже все что можно в параметрах указывал а толку 0
 
Ответить с цитированием

  #4  
Старый 04.02.2010, 04:31
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Код:
strlen(st.c_str())
умиляют такие перлы. ну читани ты доки ( http://www.cplusplus.com/reference/ ), неужели не веришь что в классе строки есть метод получения длины оной?

Код:
#include <iostream>
#include <string>
#include <vector>
using namespace std;


int main(){
	system("mode con cp select=1251");
	vector<string> letters;
	string st ="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^abcdefghijklmnopqrstuvwxyz{|}~абвгдеёжзийклмнопрс  туфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
	
	for (unsigned int i = 0;i<st.length();i++){
		letters.push_back( string() = st[i] );
		cout << letters[i].c_str() << endl;
	}
	system("pause");
}
но вообще system юзать не айс. локали работают через раз с бубном в vs2003

ps: читай книжки. а то уход за пределы массива и кривые стрлены говорят о писании методом тыка.
 
Ответить с цитированием

  #5  
Старый 04.02.2010, 15:02
Akum
Познающий
Регистрация: 05.01.2010
Сообщений: 32
Провел на форуме:
95565

Репутация: 5
Отправить сообщение для Akum с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ra$cal  
Код:
strlen(st.c_str())
умиляют такие перлы. ну читани ты доки ( http://www.cplusplus.com/reference/ ), неужели не веришь что в классе строки есть метод получения длины оной?

Код:
#include <iostream>
#include <string>
#include <vector>
using namespace std;


int main(){
	system("mode con cp select=1251");
	vector<string> letters;
	string st ="!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^abcdefghijklmnopqrstuvwxyz{|}~абвгдеёжзийклмнопрс  туфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
	
	for (unsigned int i = 0;i<st.length();i++){
		letters.push_back( string() = st[i] );
		cout << letters[i].c_str() << endl;
	}
	system("pause");
}
но вообще system юзать не айс. локали работают через раз с бубном в vs2003

ps: читай книжки. а то уход за пределы массива и кривые стрлены говорят о писании методом тыка.
Спасибо!
Но русские символы все равно не отображаються
И еще ни когда не видел операцию : string() = st[i] это приведение типа?(в первый раз такое вижу)
Ubuntu 9.10 х64 Code::Bloks
 
Ответить с цитированием

  #6  
Старый 04.02.2010, 17:42
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

ну на счет русского хз. это под вендой такой способ работает.

про string() = st[i] - это из-за того что в компиле 2003 студии у конструктора string нет варианта, который берет один символ, зато есть операция присвоения от одного символа. по сути это создание локальной переменной без имени и присвоение ей значения а потом копирование этого значения в вектор.

иначе бы я сделал так letters.push_back( string(st[i]) );
 
Ответить с цитированием

  #7  
Старый 04.02.2010, 23:33
Akum
Познающий
Регистрация: 05.01.2010
Сообщений: 32
Провел на форуме:
95565

Репутация: 5
Отправить сообщение для Akum с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ra$cal  
ну на счет русского хз. это под вендой такой способ работает.

про string() = st[i] - это из-за того что в компиле 2003 студии у конструктора string нет варианта, который берет один символ, зато есть операция присвоения от одного символа. по сути это создание локальной переменной без имени и присвоение ей значения а потом копирование этого значения в вектор.

иначе бы я сделал так letters.push_back( string(st[i]) );
спасибо что разъяснили.
А с русскими символами поступил просто в лоб))) по символу push_back() вставляю 66 вышло))).
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуеться заполнение форума North Dakota О Работе 1 18.11.2009 00:06
[php] Заполнение форм Хелпер PHP, PERL, MySQL, JavaScript 10 09.11.2009 21:43
Заполнение диска при wardriving sandazh Беспроводные технологии/WPAN/WLAN 6 20.06.2009 14:10
Заполнение контрола данными в отдельном потоке ZneP С/С++, C#, Delphi, .NET, Asm 0 17.06.2009 13:10
XSS in Scalable Vector Graphics(SVG) ettee Уязвимости 0 19.02.2007 18:20



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ