2015-04-26 37 views
-3

我想参加像两个无符号整数:Ç - 串连接

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”,这样我可以转换此从十六进制整数。我在网上看到,我可以从这个char'string'表单中做到这一点。

+1

我不明白'swap()'函数与'parse_hex()'函数的实现有什么关系......我也不理解如何显示任何代码与这些事情有任何关系。 –

+1

首先它是无符号整数,然后是无符号字符,然后交换,然后是十六进制...你丢失了我一个懒惰的时间... –

回答

1

工作太多。

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

如何在一个打印语句中打印整个结果?这很好,谢谢你 – asdf

+0

通过打印'result'。这是一个字符串。 –

+0

char result [4]; \t结果[0] =第一个; \t结果[1] =秒; \t result [2] ='0'; \t result [3] ='\ 0'; \t printf(“Result:%s”,result); 结果被打印为无。 – 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]); 
}