您好我正在制作一个程序,它使用链接列表,堆栈和队列将中缀转换为后缀并解决方程式。我已经为堆栈和队列链表制作了Push,Pull等。然而,我遇到的问题是在char和float之间进行转换。
当我从文本文件中读入时,我将等式转换为字符串,简单的等式如2 + 3 /(5 + 1)。我的push函数接受一个char,pull返回一个char。我无法弄清楚首先要做的是如何将这些字符串转换为char / floats。我编写了这个测试代码,看看typeid是否能区分char和int。
int i, j;
for(i=0; i<lines; i++){
j = 0;
while(readIn[i][j] != '\0'){
cout << typeid(readIn[i][j]).name();
j++;
}
cout << endl;
}
但是我的结果如下:
ccccccccccccccc
ccccccccccccccccccccc
ccccccccc
所以它将字符串中的每个字符解释为char。
我的第二个问题涉及拉函数。在push函数中,一旦我可以正确地将char转换为浮点转换,我做了一个函数重载,一个用char,另一个用float。完全相同的代码,只是将数据存储到结构的单独部分。但是在pull函数中,我如何拉出char或float?我需要一个pull函数来返回一个char而另一个需要一个float,但你不能拥有2个具有相同参数和不同返回值的函数,我有点迷失。
我真的很感激任何帮助!
答案 0 :(得分:0)
我不知道,我是否正确理解你的问题。你只想知道你的字符串中的字符代表什么(数字,字母,点,......)?
在这种情况下,我会使用C函数
isalpha(c); // != 0, if c is a letter
isdigit(c); // != 0, if c is a digit
isspace(c); // != 0, if c is space, tab, ...