2013-07-17 18 views
1

我使用字符串来呈现信息,它是一个十六进制字符串。这些字符串序列的形状是一个矩形。但是,我想通过删除无用十六进制数和由“0”矩形与C中的字符串循环使用

例如替换,修改形状为圆: 十六进制字符串是

"f1ffffffff" 
"ff2fffffff" 
"fff3ffffff" 
"ffff4fffff" 
"fffff5ffff" 
"ffffff6fff" 
"fffffff7ff" 
"ffffffff8f" 
"fffffffff9" 
"ffffffffff" 

在的形状的输出的十六进制字符串圆是

"000ffff000" 
"002fffff00" 
"0ff3fffff0" 
"0fff4ffff0" 
"fffff5ffff" 
"ffffff6fff" 
"0ffffff7f0" 
"0fffffff80" 
"00ffffff00" 
"000ffff000" 

我已经试过如下使用生成圆的程序:

void main() 
{ 
    int radius; 
    cout << "Input circle's radius: "; 
    cin >> radius; 
    for (int i = 1; i <= radius*2; i++) 
    cout << "="; 
    cout << endl; 
    for (int x = 1; x < radius*2; x++) 
    { 
     for (int y = 1; y < radius*2; y++) 
     { 
      if (abs(y - radius) * abs(y - radius) + abs(x - radius) * abs(x - radius) <= radius * radius) 
      cout << "ff11"; 
      else cout << " "; 
     } 
     cout << endl; 
    } 
} 

我遇到的问题是程序更改了十六进制字符串的位置,但不删除无用的十六进制。 有人可以帮我用我的代码吗?

编辑:

上面的例子是一个十串序列,每串10支进制数,这是由我生成。我想重新塑造seq 1使它看起来像一个圆圈(seq 2“0”代表“没有词”)。因此,对于第一行,我删除前三个十六进制数字和后三个十六进制数字,并将其替换为“0”,这六个数字被称为“无用十六进制”,依此类推。

我使用的代码可以打印一个圆,但它不完全是我想要的。我有问题来实现这个功能。如果有人帮我改变一些代码或完全改变,我会非常感激。

+0

使用'cout << ...'清楚地表明您正在使用C++而不是C,所以我已经相应地更改了标签。 – Caleb

+2

你会得到什么输出? “删除无用的十六进制”是什么意思? – interjay

+0

void main()的使用也表明它不是C++ :) – mars

回答

0

更换

cout << "ff11"; 

一个字符,而不是四个,例如

cout << "f"; 

然后你会得到你想要的东西。