2015-05-10 3 views
0
#include <iostream> 
#include<string.h> 
#include<cstring> 
#include<ctype.h> 

using namespace std; 

char *Data1[100]; 
char *operators[20]; 
char *identifiers[20][20]; 
int ascii[100] = {0}; 
int ascii2[100] = {0}; 
unsigned int Tcount = 0; 
unsigned int i; 

int main(void) 
{ 
    char *text = (char*)malloc (100 *sizeof(char)); 
    cout << "Enter the first arrangement of data." << endl; 
    cin.getline(text, 100); 
    char *token = strtok(text, " "); 
    while (token != NULL) 
    { 
     Data1[Tcount++] = token; 
     token = strtok(NULL, " "); 

    } 
    for(i=0; i < Tcount; i++) 
    { 
     ascii[i] = (int)token[i]; 
     cout << ascii[i] << endl; 

    } 

    return 0; 
} 

Цикл for в нижней части должен хранить значения ascii 'токенов' в массиве. Когда я вводим пользовательский ввод в токенизатор как «x = a + 1», программа прекращается без распечатки любых значений ASCII. Любая помощь с этим была бы признательна.Преобразование в ASCII

ответ

0

Какова роль следующего раздела?

char *token = strtok(text, " "); 
while (token != NULL) 
{ 
    Data1[Tcount++] = token; 
    token = strtok(NULL, " "); 

} 

Подсчитывает количество «токенов»? Но когда вы назначаете ascii [i], вы берете первые цифры number_of_tokens текста?

+0

Вы правы, извините, что я забыл обновить программу, теперь я отредактирую сообщение – user4878925

+0

Im относительно новое для C++, есть ли шанс, что вы могли бы рассказать мне, как я могу использовать «токен» в loop вместо «text» – user4878925

+0

Это зависит от ваших предположений и целей. Вы предполагаете, что каждый токен имеет один символ? Вы хотите распечатать ASCII всех символов, исключая обратные пространства? – lkanab

Смежные вопросы