Member 14837073 Ответов: 2

Как преобразовать массив, содержащий значение ascii и измененный на один символ ?


for example, take the char array holding ascii value "656667", the int conversion i'm looking for would change those vlaue to a single character  with "ABC".

any help would be very much appreciated.


Что я уже пробовал:

    CString msg;
char nbuf[10] = {65,67,66};
for (int i = 0; i < 10; i++) {
    msg.Format(L"%c", (BYTE)nbuf[i]);

    m_asciiresult.SetWindowTextW(msg);
}

Richard MacCutchan

Почему бы тебе не сделать это вместо этого:

wchar_t nbuf[] = L"ABC";

// or even
CString msg = L"ABC";

Member 14837073

Надеюсь, вы понимаете мои вопросы,

Здесь я говорю о преобразованиях ...
для exmple
char nbuf[10] = {67,68,69,70,70,72};
глутамат натрия.Формат(L"%c", (байт)nbuf[0]);

m_asciresult.SetWindowTextW(msg);
я получаю вывод для этого "C", но я хочу, чтобы вывод был чем-то вроде "CDEF"..но я делаю правильный или неправильный код выше, но мне нужна помощь

Member 14837073

CString msg;
wchar_t nbuf[] = L"ABC";
глутамат натрия.Формат(L"%d", nbuf);
m_asciresult.SetWindowTextW(msg);
даже я пытаюсь это сделать, это было похоже на символ, чтобы изменить целое число, но это также я не получил надлежащего выхода, я получаю фиктивное значение ....

2 Ответов

Рейтинг:
0

CPallini

А что с тобой не так?

char nbuf[] = {65, 67, 66, '\0'};
CString msg(nbuf)
m_asciiresult.SetWindowText(msg);

?


[обновление]
Цитата:
константный беззнаковый тип char nbuf[] = { 'А', 'Б', '\0', '\0', 'С', 'Д', 'Е', 'Ф' };

над программами - вице-вирса ...
Я пытаюсь с тем же способом, который я не получил, если какие-либо изменения, дайте мне знать

Ожидаемый выход будет "65 66 0 0 67 100 101 102"


Вы можете итеративно увеличивать объект CString с помощью CString::Формат[^] метод, не очень эффективный, но он должен работать, например (не тестировался)
CString msg;
for (size_t n=0; n < sizeof(nbuf); ++n)
{
  CString s;
  s.Format(_T("%u "), (unsigned) nbuf[n]); 
  msg += s; 
}

[/обновление]


Member 14837073

Спасибо вам так много его работ ,это просто демонстрационные программы, которые мне нужно реализовать в последовательном мониторинге ,еще раз спасибо

Member 14837073

константный беззнаковый тип char nbuf[] = { 'А', 'Б', '\0', '\0', 'С', 'Д', 'Е', 'Ф' };

над программами - вице-вирса ...
Я пытаюсь с тем же способом, который я не получил, если какие-либо изменения, дайте мне знать

Ожидаемый выход будет "65 66 0 0 67 100 101 102"

CPallini

Пожалуйста, ознакомьтесь с моим обновленным решением.

Member 14837073

ни один оператор "+=" не соответствует этим операндам

CPallini

Я снова обновил его. Надеюсь, на этот раз все получится.

Member 14837073

Большое вам спасибо , Cpallini
свои работы

CPallini

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

Рейтинг:
0

Rick York

Ваш вопрос совсем не ясен. Если вы хотите преобразовать строку в целое число, вы можете использовать функцию atoi.

Цитата:
преобразование int, которое я ищу, изменит эти vlaue на один символ с "ABC".
Я понятия не имею, что означает это предложение.

Я думаю, вам нужно прояснить для себя (и для нас), действительно ли вы конвертируете данные или просто форматируете их для отображения? Обычно это две разные вещи. Похоже, вы настраиваете формат, в котором он отображается, но это трудно определить.

Вы также должны пересмотреть ответ, который я дал в прошлый раз, когда вы задавали вопрос, который был очень похож на этот. Он появился в списке предыдущих вопросов в правой колонке этой страницы.


Member 14837073

мне очень жаль , что я не могу заставить вас понять, Ребята, я новичок в разработчиках. ,
давайте еще раз попробую объяснить , например

CString msg;
char nbuf = 67

глутамат натрия.Формат(L"%c", (байт)nbuf);

m_asciresult.SetWindowTextW(msg);
над программой я получаю вывод C (67 символов значения ascii-это "C") , теперь мне нужен формат массива . значение ascci находится в ,
char nbuf[]={67,68,69} ,это i want character 67=C,68=D,69=E ,это означает, что вывод want-это "CDE" либо над программой ,которую я делаю правильно, либо неправильно, пожалуйста, помогите мне, я надеюсь, что вы поймете ...спасибо