尝试创建将input_
缓冲区转换为output_
中的十六进制表示形式的函数。简单操作遇到困难 - 将字符串插入字符串。我决定将output_
指针移动到每个sprintf之后2个位置,最后移动指针指向起始位置。但看起来它可能很危险,因为根据我的理解,我将数组的位置移动到另一个可能用于其他目的的内存区域。我对吗?那么如何解决字符串插入问题?
void toHexS(const char* input_, char* output_ )
{
int i=0;
//for(i = 0; i < 5; i++)
while(input_[i]!=0 )
{
stmcpy();
sprintf(output_,"%02x", input_[i]);
printf("%02x\n", input_[i]);
output_++;
output_++;
i++;
}
int j;
for(j = 0; j<i*2 ; j++)
{
output_--;
}
}
答案 0 :(得分:0)
从您的问题中不确定问题究竟是什么。你的代码虽然很乱,但应该可以工作。
您无需拨打stmcpy
,也无需执行任何操作。
最后你不需要for循环。调用程序有一个指向output_的指针,C通常按值传递,所以没关系。
不要执行output_++
两次,而是使用output_ += 2;
。
for循环比while循环更自然。
for (i=0; input[i] != '\0'; i++)
。