• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Замена символа в строке

  • Автор темы Серега_123
  • Дата начала
С

Серега_123

Всем привет!
Задача: исходная строка (char) содержит числа десятичной системы счисления. Найти их, создать новую строку, в которой заменить числа десятичной системы счисления на их же номинал в шестнадцатеричной системе счисления.
Использовать стандартные функции и библиотеки нельзя.

Мой код: он хорошо переводит только числа, символы букв не могу перевести.

Код:
#include <stdio.h>

void inputChar(char *str)
{
    printf("input array char <100: ");
    scanf("%s", str);
}
void revers(char *A)
{
    int j;
    for (j = 0; A[j] != '\0'; j++);
    j--;
    for (int i = 0; i <j; i++, j--)
    {
        char temp = A;
        A = A[j];
        A[j] = temp;
    }
}
int charToDecInt(char *A)
{
    int summ = 0;
    for (int i = 0; A != '\0'; i++)
    {            
            if ('0' <= A && A <= '9')
            {
                summ *= 10;
                summ += A - '0';
            }
            else
            {
                summ += A-'A'+10;
            }    
    }
    return summ;
}
void decIntTohexString(int a, char *A)
{
    int j = 0;
    while (a != 0)
    {    
        int r = a % 16;
        if (r >= 1 && r <= 9)
        {
            r += '0';
        }
        else
        {
            r += 'A'- 10;
        }
        A[j++] = r+A[j];
        a /= 16;
    }
    A[j] = '\0';
    revers(A);
}
void display()
{
    const int N = 100;
    char A[N] = "";
    char B[N] = "";
    inputChar(A);
    int a = charToDecInt(A);
    decIntTohexString(a, B);
    printf("hexChar = %s\n", B);
}
int main()
{
 
    display();
    return 0;
}
 
C

chyond

в большинстве случаев используется указатель на массив А, хотя должен использоваться элемент массива А.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!