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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.70
rtr
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 34
#1

Перевод из string в ASCII - C++

01.05.2010, 21:12. Просмотров 10802. Ответов 22
Метки нет (Все метки)

Как можно перевести строку в ASCII коды? Есть ли возможность переводить сразу, а не через char?
Спасибо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2010, 21:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из string в ASCII (C++):

Перевести из int в string по таблице ascii - C++
подскажите как перевести из числа в символ? есть int a = 97; как получить std::string = "a" ?

Как ковертировать из ASCII опять в string? - C++
Всем доброго здравия. Нашел программу, которая переводит буквы строки в порядковые номера по таблице ASCII, с помощью функции length()....

Перевод с двоичной системы в ASCII - C++
Есть последовательность 01010111101101010101101111011 ( к примеру ), как перевести эту последовательность в ascii коды ?

Перевод ASCI в ASCII и наоборот - C++
Добрый день учень нужна помощь... немогу никак разобраться с проблемой перевода кодировок, мне нужно чтоб в окне dos да и в текстовые файлы...

Перевод символов в код таблицы ascii - C++
помогите перевести элементы символьного массива в код таблицы ascii

Перевод символа в ASCII и запись в массив - C++
Добрый день! Задача: пользователь вводить строку символов, далее символы переводятся в ASCII в бинарном коде и записываются в массив...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
02.05.2010, 01:32 #16
И че ты с ней делать хочешь?
rtr
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 34
02.05.2010, 01:35  [ТС] #17
Цитата Сообщение от mirso Посмотреть сообщение
И че ты с ней делать хочешь?
то что в цифрах, так и оставить в цифрах, а слова перевести в ascii.(там таких строк много.)
Всё это сделано, единственное, при переводе слов появляется символ ещё один.

ну и в конце концов всё это загнать в двумерный массив
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,280
02.05.2010, 01:51 #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int i, j, j1;
char *str1 = {"428000.ул.Мира.дом.97.квартира.107.тел.44-44-44"};
char str2[10][20];
 
for(i = 0; i < 10; i++)
    for(j = 0; j < 20; j++)
        str2[i][j] = 0;
 
j1 = j = 0;
for(i = 0; i < strlen(str1); i++){
    while(str1[i]!='.' && str1[i]!='\0')
        str2[j][j1++] = str1[i++];
    j1=0;
    j++;
}
for(i = 0; i < 10; i++)
    std::cout << str2[i] << std::endl;
переводит все, что разделено точками в отдельные строки и дальше делайте с ними, что хотите
(вариант немного грубоват, лучше сделать его более динамичным)
rtr
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 34
02.05.2010, 02:03  [ТС] #19
спасибо... попробуем его прикрутить
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
02.05.2010, 02:09 #20
Цитата Сообщение от rtr Посмотреть сообщение
прикрутить
крути
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main()//========================================================
{
    setlocale ( LC_ALL, "" );
 
    std::string s = "428000.ул.Мира.дом.97.квартира.107.тел.44-44-44";
    std::cout << s << std::endl; 
    
    for (size_t i = 0; i < s.size(); ++i)
    {
        if ( s[i] >= 48 && s[i] <= 57 ) 
            std::cout << s[i];
        else                            
            std::cout << '<' << (int)(s[i]&255) << '>';
    }
    std::endl(std::cout);
    return 0;
}//==================================================================
rtr
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 34
04.05.2010, 00:00  [ТС] #21
Цитата Сообщение от Vorona Посмотреть сообщение
переводит все, что разделено точками в отдельные строки и дальше делайте с ними, что хотите
(вариант немного грубоват, лучше сделать его более динамичным)
спасибо, за вариант... а не могли бы вы объяснить, по чему в этом коде (сделанный на ваш манер) не происходит запись даль [0][m], т.е. [1][m] и т.д.
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
38
39
40
41
42
43
44
45
46
data.open("data.txt",ios_base::in);
 
        while(!data.eof())
        {
        data.getline(buf, BUF_SIZE, '\n');
        s = buf;
    
        while( (ind = s.find(filter, old_ind)) != -1 )
            {
                str = s.substr(old_ind, ind - old_ind);
                old_ind = ind + 1 ;
                step1++;
     if  (step1>4)
        {
            if (step1==5)
            {j=4;}
            int* ascii_str1 = new int[str.length()];
            for (i = 0; i < str.length(); i++)
                ascii_str1[i] = str[i];
            for (i = 0; i < str.length(); i++)
                str3+=_itoa(ascii_str1[i],sstring,10);
            val1=atof(str3.c_str());
            a[j1][j++]=val1;
            str3.erase(0,str3.length());
 
            if (step1>8)
            {
                step1=0;
                j=0;
                j1++;
            }
        }
            else
                {
                    val=atof(str.c_str());
                    a[j1][j++]=val;
                }   
            }
            str = s.substr(old_ind, s.length() - old_ind);
            old_ind = 0;
     for(j1=0;j1<n;j1++)
        for(j=0;j<m;j++)
        cout << a[j1][j]<<endl;
        }
        data.clear();
        data.close();
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,280
04.05.2010, 02:27 #22
честно, я не понял, что такое "даль [0][m], [1][m] и т.д." потому перефразируйте пожалуйста вопрос)
и давайте я вам объясню принцип разбивания строки на подстроки(слова, разделенные определенным знаком), чтоб вы не зависили от моего кода, который впринципе работает, а постарались сами все организовать)
Вобщем у нас есть массив(*str1, строка) и есть пустой двумерный массив(**str2, массив строк)
мы посимвольно ищем разделитель слов, к примеру точку и если этот символ не является точкой, переписываем этот символ из str1[i] в str2[j][j1]:
C
1
2
3
4
j1 = j = 0;
for(i = 0; i < strlen(str1); i++)
    while(str1[i] != '.')
        str2[j][j1++] = str1[i++];
если же встречаем точку, то начинаем следующий символ после точки переписывать уже в новую строку массива строк str2:
переходим на новую строку(j++) и начинаем запись в нее с начала(j1 = 0)
и конечно же программа выдаст ошибку или зациклится если после последней точки будут стоять символы, т.е. она попытается дальше переписывать символы из str1 в str2 пока не встретит точку, потому мы добавляем в цикл
C
1
while(str1[i] != '.' && str1[i] = '\0')
, что означает, что данные будут переписываться до того, как встретится знак точка или конец строки(\0)
не все понимаю в вашей программе, потому попробуйте сначала реализовать разбиение на строки, а потом добавьте перевод символов в их ASCII коды, сохранение символов, если они цифры и т.д. (от простого к сложному)
rtr
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 34
05.05.2010, 01:34  [ТС] #23
Цитата Сообщение от Vorona Посмотреть сообщение
не все понимаю в вашей программе, потому попробуйте сначала реализовать разбиение на строки, а потом добавьте перевод символов в их ASCII коды, сохранение символов, если они цифры и т.д. (от простого к сложному)
действительно... мне надо было самому разобраться))... проблема решена, спасибо... хотя появились новые - но это уже другая тема
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2010, 01:34
Привет! Вот еще темы с ответами:

Перевод из HEX в ASCII и ещё кое - что - C++
Народ, как строку в HEX типа 3A 30 31 30 36 перевести в ASCII типа :0106 ? А как наоборот? А самое интересное, как из HEX перевести...

Перевод string в int - C++
Доброго времени суток! Помогите с задачей. Задана строка strung s с числами (например 2 55 11) Как считать числа в массив int

Перевод массива в string - C++
Всем доброго времени суток! Я недавно начал изучать с++, и возник такой вопрос: Как перевести массив чисел Arr в string? Буду...

Перевод из int в string - C++
Подскажите, пожалуйста, как перевести целое число в строку читал вот эту темку, но не понял ничего :(


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.05.2010, 01:34
Ответ Создать тему
Опции темы

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