Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/58: Рейтинг темы: голосов - 58, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 32
1

Перевод из int в char

15.02.2013, 00:20. Показов 10669. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вылетает при запуске вот этот код
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
void get_word(char* str, int p)
{
    int i=0;
    while(str[p+i]!='\n')
    {
        int C = str[p+i];
        printf("%s ",(char)C);  
        i++;
    }
    printf("\nFINE");
}

причем без перевода в char спокойно выводит на экран аски коды
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2013, 00:20
Ответы с готовыми решениями:

Перевод из int в char
программа перевода из int в char, мне нужно написать эту же программу, но не используя n как...

Перевод вводимого числа из char в int
Помогите пожалуйста. Вообщем все работает нормально кроме int main(). выбираю пункт один и...

Перевод массива unsigned char в число типа int
Добрый день всем! Есть массив, который заполняется трехзначным числом, введенным с клавиатуры...

Перевод буфера char в int без посимвольного перебора
Детсадовский вопрос. Считываю из файла 100 элементов типа char. Нужно весь буфер перевести в число....

10
63 / 63 / 23
Регистрация: 09.12.2012
Сообщений: 459
15.02.2013, 00:46 2
C++
1
2
3
4
5
6
7
8
9
10
11
void get_word(char* str, int p)
{
    int i=0;
    while(str[p+i]!='\n')
    {
        int C = str[p+i]-'0';
        printf("%d ",C);  
        i++;
    }
    printf("\nFINE");
}
Добавлено через 10 минут
причем без перевода в char спокойно выводит на экран аски коды
Конечно, int - 4 байта, а char - 1 байт, понятно что билебирду выводит
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 32
15.02.2013, 06:20  [ТС] 3
Да, но прога даже не запускается. Вообще...
P.S Использую Pelles C

Добавлено через 4 часа 20 минут
Все проблему решил: в printf надо было не "%s" а "%c"

Добавлено через 1 минуту
Теперь другой вопрос. Как сделать возврат 2-мерного массива из функции.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
15.02.2013, 07:39 4
http://itedu.ru/faq/kak-pereda... massiv-v-c вот тут вроде понятно написано, возвращать массив(средствами С, если вектор использовать то там можно вроде) в ряд ли получится, я всегда передавал при помощи указателей, а потом юзал обработанный.
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 32
15.02.2013, 09:38  [ТС] 5
Это не то. Там "Как передать в функцию 2-мерный массив". А мне надо чтобы функция 2-мерный массив возвращала.
Просто я не хочу string юзать и юзаю char но походу без строк никак.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
15.02.2013, 09:52 6
Ну а зачем именно возвращать? насколько я помню, библиотечные сишные функции тоже не возвращают массив, а обрабатывают поданый. Если ты создал пустой массив, подал его в функцию, а в следующей строчке используешь то, что получилось, то чем это хуже, чем возвратить?
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 32
15.02.2013, 10:46  [ТС] 7
Аааа. Такой вариант кстати тоже был мною разобран, но не получилось сделать. Спасибо за статью
0
63 / 63 / 23
Регистрация: 09.12.2012
Сообщений: 459
15.02.2013, 12:44 8
Возврат двумерного массива из функции: в описание функции ставишь указатели, скажем примером: int **f(...); и в функции возвращаем массив return mas; при этом конечно лучше знать его размерности для дальнейшей работы.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
15.02.2013, 13:03 9
Цитата Сообщение от M9ICHIK Посмотреть сообщение
Возврат двумерного массива из функции: в описание функции ставишь указатели, скажем примером: int **f(...); и в функции возвращаем массив return mas; при этом конечно лучше знать его размерности для дальнейшей работы.
Я так понимаю вы предлагаете возвратить указатель на массив, объявленный внутри функции? Если так-то в ряд ли это корректно, где гарантия, что по этому адресу после выполнения функции не запишется что-нибудь другое? Если я ошибаюсь-поправьте, и хотелось бы пример кода, где такое возможно корректно осущестивить.
0
63 / 63 / 23
Регистрация: 09.12.2012
Сообщений: 459
15.02.2013, 13:21 10
Пожалуйста
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
//---------------------------------------------------------------------------
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int **f()
{
 int **mas2=new int*[2];
 for(int i=0;i<2;i++)
  mas2[i]=new int[3];
 for(int i=0;i<2;i++)
  for(int j=0;j<3;j++)
   mas2[i][j]=5;
 return mas2;
}
int main(int argc, char* argv[])
{
  int **mas=new int*[2];
  for(int i=0;i<2;i++)
    mas[i]=new int[3];
  mas=f();
  for(int i=0;i<2;i++)
  {
   for(int j=0;j<3;j++)
   {
    cout<<mas[i][j]<<" ";
   }
   cout<<endl;
  }
  system("pause");
        return 0;
}
//---------------------------------------------------------------------------
делал в C++ Builder 6

Добавлено через 8 минут
Если используете язык Cи, а не С++, то следует заменить cout на printf:
C
1
printf("%d ",mas[i][j]);
и
C
1
printf('\n');
1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
15.02.2013, 13:30 11
Да, так все работает, учту. Спасибо.
0
15.02.2013, 13:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2013, 13:30
Помогаю со студенческими работами здесь

Error C2040:strnset_2:"char *(char *,int,unsigned int)" отличается по уровням косвенного обращения от "int ()"
Не могу найти в чём ошибка. error C2040: strnset_2: &quot;char *(char *,int,unsigned int)&quot; отличается...

Перевод char в int работает только для положительных, не дробных чисел
{ int i, Chislo=0; if(!StrLen(str)) return 0; for(i=0;i&lt;StrLen(str);i++)...

Перевод *char в int[] c++
Нужно перевести длинное число которое хранится в виде &quot;+/-324354365654656&quot; в char* в массив int....

Перевод из char в int
нужно перевести из char в int, способ перевода следующий: &quot;значение цифры равно значению ее...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru