将字符插入cstring

时间:2013-12-18 14:11:55

标签: c

尝试创建将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_--;
    }



}

1 个答案:

答案 0 :(得分:0)

从您的问题中不确定问题究竟是什么。你的代码虽然很乱,但应该可以工作。

您无需拨打stmcpy,也无需执行任何操作。

最后你不需要for循环。调用程序有一个指向output_的指针,C通常按值传递,所以没关系。

不要执行output_++两次,而是使用output_ += 2;

for循环比while循环更自然。 for (i=0; input[i] != '\0'; i++)

相关问题