2015-04-26 1 views
-3

Я пытаюсь взять в двух целых чисел без знака, как:C - Объединение строк

int swap(unsigned char first, unsigned char second){ 


} 

Эти неподписанные Чара будут числа, такие как «2» или «0».

Цель, которую я пытаюсь достичь, - создать символ «строка» с этими двумя неподписанными символами, конкатенированными и добавить еще один ноль в конец.

 printf("\n%u\n", first); 
    printf("%u\n", second); 
    unsigned char zero = "0"; 
    printf("%u\n", zero); 

    char *string; 
    char zero = 0; 
    strcat(string, first); 
    strcat(string, second); 
    strcat(string, zero); 
    printf("String: %s", string); 

В этом случае, если первый является «0», а второй является «2», Я хочу строку вывода, чтобы быть «020», так что я могу преобразовать это из шестнадцатеричной в целое число. Я видел онлайн, я могу сделать это из того, что он находится в форме символа 'string'.

+1

Я не понимаю, что 'свопа()' функция связана с реализацией 'parse_hex()' функцию ... И я не понимаю, как любой из кода показано имеет какое-либо отношение к любой из этих вещей. –

+1

Сначала это целые числа без знака, затем символы без знака, затем свопинг, затем шестнадцатеричные ... Вы потеряли меня loooong time ago ... –

ответ

1

Слишком много работы.

char result[4]; 
result[0] = first; 
result[1] = second; 
result[2] = '0'; 
result[3] = '\0'; 
+0

Как распечатать весь результат в одном заявлении на печать? Это отлично работало спасибо – asdf

+0

Распечатав 'result'. Это строка. –

+0

результат char [4]; \t результат [0] = первый; \t результат [1] = второй; \t результат [2] = '0'; \t результат [3] = '\ 0'; \t printf ("Результат:% s", результат); Результат печатается как ничто. – asdf

0

Я думаю, что прежде чем вы проанализируете переменные первым и вторым в своей функции, вы должны сначала преобразовать их в char. Таким образом, один из способов сделать это - сначала использовать sprintf(), прежде чем извлекать первый и второй. Так что это что-то вроде:

int urNumber = 20; //example 
int Length; 
char *buffer; 

Length = sprintf(buffer, "%d", urNumber); 
if(Length == 2) 
{ 
swap(buffer[0], buffer[1]); 
} 
Смежные вопросы