如何在c++中不使用std::string,也不使用任何STL,将复数存储在字符数组中
How to store complex number in a character array in c++ without using std::string, nor any STL?
我希望将2个整数作为用户说5和6的输入,并需要将其存储为一个复数,即5 + i6中的字符数组。条件是不能使用string和ccomplex库。
我不想打印它,因为我不想做这样的事情:
char x= 5+'/0';
char y= 6+'/0';
cout<< x << " i"<<y;
而是与以下内容等价的内容:
char x[10]= "5 +i6";
如果你不能使用string,那么我猜你不能使用std::stringstream。回到snprintf(buf, sizeof buf, "%d + i%d", 5, 6)
。
不能使用std::string。问题是,设置问题的人为什么要传递字符串数据?不允许std::string是完全合理的,但是您是否有自己的类,您是否使用调用者提供的固定缓冲区的C字符串,或者您是否传递使用malloc()分配的C字符串。还有其他可能的选择。
如果你有自己的字符串类,我们无法在没有看到它的情况下回答。填充调用者
提供的C缓冲区/* return 0 on success, -1 if buffer too small */
int toString(char *buff, int N, int real, int imaginary)
{
int sz = snprintf(buff, N, "%d + %di", real, iamginary);
if(sz > N-1)
return -1;
return 0;
}
传递用malloc分配的字符串。
/* return a string allocated with malloc */
char *toString(int real, int imaginary)
{
int sz;
char *answer = 0;
const char *fmt = "%d + %di";
sz = snprintf(0, 0, fmt, real, imaginary);
answer = malloc(sz + 1);
if(answer)
snprintf("answerswer, sz+1, fmt, real, imaginary);
return answer;
}
相关文章:
- 多维数组存储三种不同的数据类型?
- C++将原始字符数组存储在元组中
- 将十六进制字符数组存储在字节数组中,而无需更改为 ASCII 或其他任何东西
- 我正在编写一个代码来将 int 数组存储在文件中,然后用 c++ 检索它,但是检索第一项是假值,我该如何解决这个问题?
- 如何将元素的索引从2D数组存储到1D数组中,然后交换这些值
- 如何将JSON数组存储在Arduino程序中
- 如何在AVR(例如:ATMega)或Arduino微控制器上制作2D PROGMEM阵列的1D PROGMEM数组(存储
- 使用 char 数组存储数据
- 使用平面数组存储的元组容器
- 数组 存储并要求用户搜索它
- 将值从一个 char 数组存储到另一个 char 数组
- 如何使字符串数组存储在向量中
- 将构造的静态数组存储在多个文件中的内存中
- 将整数数组存储在堆上并通过指针访问它们
- c++声明一个数据类型的字节数组,该数组存储在字符串中
- 使用指针数组存储阶乘计算的所有中间结果
- 使用异构数组存储不同的子类
- 读取文件内容,存储在数组中,向数组添加更多内容,然后将新数组存储在文件C++中
- 尝试将复杂数组存储到类 c++ 中
- 在字节数组存储中嵌入 int/string