Название: Char Отправлено: Firefox от Ноябрь 30, 2009, 13:33 помогите в таком вопросе. есть массив
Код: char mass[300]={1,2,3,4,56,74,23,'g',t'}.... возможно мне надо заполнять весь массив цифрами(которые будут означать коды букв и цифр), а потом переводить всё в текст... как я поняла char это массив чисел от 0 до 255... Название: Re: Char Отправлено: Igors от Ноябрь 30, 2009, 13:54 Код: QString s; Название: Re: Char Отправлено: SASA от Ноябрь 30, 2009, 16:26 Я бы использовал
Код: QString::number(mass[i]) Название: Re: Char Отправлено: Firefox от Ноябрь 30, 2009, 22:58 Спасибо попробую :D
Название: Re: Char Отправлено: Tonal от Декабрь 02, 2009, 10:05 В этом массиве у тебя записаны только символы. char в С++ это тот же int, только маленький. :)
А массив из символов или чисел в С++ не поддерживается. В зависимости от того, зачем тебе это нужно можно придумать несколько вариантов решения. :) Название: Re: Char Отправлено: Firefox от Декабрь 04, 2009, 16:57 массив именно такой поменять ни как.этот вопрос я реализовала всё выводиться правильно. массив может состоять как из чисел так и из букв причём 0 тоже может быть в массиве, но теперь проблема в другом. надо написать "пока не наступит конец массива".то есть например в массив записали 10 букв с цифрами вперемешку. а остальные 390 он дополняет сам нулями. и мне надо вывести из массива только те 10 букв/цифр. но я не знаю сколько их. если написать
Код: while (mass[i]!='\0') Название: Re: Char Отправлено: BRE от Декабрь 04, 2009, 17:03 массив именно такой поменять ни как.этот вопрос я реализовала всё выводиться правильно. массив может состоять как из чисел так и из букв причём 0 тоже может быть в массиве, но теперь проблема в другом. надо написать "пока не наступит конец массива".то есть например в массив записали 10 букв с цифрами вперемешку. а остальные 390 он дополняет сам нулями. и мне надо вывести из массива только те 10 букв/цифр. но я не знаю сколько их. если написать Ну и храни отдельно в переменной количество значений.Код: while (mass[i]!='\0') Название: Re: Char Отправлено: Alp от Декабрь 04, 2009, 20:39 Я вот не могу все же понять каким магическим образом выводится то одно то другое? То цифры то буквы? Например, 65 - это цифра 65 или символ 'A'?
Потом, что касаемо нуля - в конце массива СИМВОЛ '0' или символ с нулевым КОДОМ \x0? Если символ - проблемы нет, если код - то только хранить доп.переменной размер массива, C++ - это не питон. Название: Re: Char Отправлено: Firefox от Декабрь 05, 2009, 22:40 Дело в том что этот массив мне пересылают по сети уже в заполненном виде. поэтому я не знаю сколько элементов там заполнено.а мне надо эти элементы вывести на экран.
Название: Re: Char Отправлено: BRE от Декабрь 05, 2009, 22:45 Дело в том что этот массив мне пересылают по сети уже в заполненном виде. поэтому я не знаю сколько элементов там заполнено.а мне надо эти элементы вывести на экран. Ну тогда нужно использовать библиотеку libastral.Название: Re: Char Отправлено: Alp от Декабрь 06, 2009, 00:27 Дело в том что этот массив мне пересылают по сети уже в заполненном виде. поэтому я не знаю сколько элементов там заполнено.а мне надо эти элементы вывести на экран. И более того, ты не знаешь что выводить первым - число или символ, если на первой позиции, например, стоит 65 или подобное? Задача несколько эээ... бредовая, в стиле "мне присылают что-нибудь и с чем-нибудь что-нибудь надо сделать".Название: Re: Char Отправлено: spectre71 от Декабрь 06, 2009, 07:44 помогите в таком вопросе. есть массив Код: char mass[300]={1,2,3,4,56,74,23,'g',t'}.... возможно мне надо заполнять весь массив цифрами(которые будут означать коды букв и цифр), а потом переводить всё в текст... как я поняла char это массив чисел от 0 до 255... массив именно такой поменять ни как.этот вопрос я реализовала всё выводиться правильно. массив может состоять как из чисел так и из букв причём 0 тоже может быть в массиве, но теперь проблема в другом. надо написать "пока не наступит конец массива".то есть например в массив записали 10 букв с цифрами вперемешку. а остальные 390 он дополняет сам нулями. и мне надо вывести из массива только те 10 букв/цифр. но я не знаю сколько их. если написать Код: while (mass[i]!='\0') Превое что тебе необходимо сделать это описать задачу в нормальных терминах!!! Не называй числа - цифрами, а символы - буквами. Если мы говорим о Код: mass[i] Теперь ответь на вопросы: 1) Массив всегда одного размера? Если массив одного размера, то его размер 300? 2) Массив всегда заполнен полностью или нет? Если нет, то каким образом определяется граница значимой части. 3) Как ты интерпретируешь значения элементов массива? - значения соответствующие кодам букв латинского алфавита - как символы? - значения соответствующие кодам цифр - как символы? - остальное как числа? А могут несколько подряд идущих элементов массива интерпрретироваться как одно число или каждый элемент всегда рассматривается отдельно? Опиши подробнее, что и как интерпретируется! Название: Re: Char Отправлено: michael1960 от Декабрь 06, 2009, 09:35 По моему лучше всего проверять ACSII код символа. В смысле, допускаем что все что ты получаеш - символ, тогда проверка будет выглядеть так:
Код:
Название: Re: Char Отправлено: Firefox от Декабрь 07, 2009, 13:14 Всем спасибо. предложенное решение полностью соответствует тому что я хотела сделать
Код: QString s; for (int i = 0; i < 200; ++i) { QChar c(mass); if (c.isLetter()) s += c; else s += QString().setNum(mass); } полностью соответствует тому что я хотела сделать Название: Re: Char Отправлено: SASA от Декабрь 07, 2009, 19:30 На C++ Вы выражаетесь понятней ;D
Но, по-моему, с ошибками... Название: Re: Char Отправлено: Firefox от Декабрь 15, 2009, 12:23 утверждение это цифра как выразить кодом?и получается у букв и знаков(точка, запятая, пробел...) 100% коды больше 9? и ещё вот так как я сделала у меня пробел выводит числом 32,как это побороть?
Название: Re: Char Отправлено: Пантер от Декабрь 15, 2009, 12:35 Может лучше так?
Код
|