Хорошо, я новичок в c / c ++, и я создаю эту маленькую программу, которая проверяет, является ли введенный пользователем ввод действительным числом или нет, если это так, то он печатает «это число» или иначе он печатает«это символьная строка»
Некоторые примеры вывода
1 - is a number
-1.1 - is a number
1......1 - is a character string
three - is a character string
.12 is a character string
+0.12 is a number
ABC123ABC - is a character string
Я получаю эту ошибку в своем коде.Если бы кто-то мог помочь мне исправить это, я был бы очень признателен.TIA
cpp: 52: 23: ошибка: неправильное преобразование из 'char' в 'char *' [-fpermissive]
if (! IsNum (c [i]))
{~~~ ^ task1.cpp: 5: 19: примечание: инициализация аргумента 1 'bool isNum (char *)' bool isNum (char *)p) {
Мой код
#include <iostream>
bool isNum(char * p){
if (NULL == p || *p == '\0'){
return false;
}
int dot = 0;
int plus = 0;
int minus = 0;
while(*p){
char a = *p;
switch (a)
{
//Only allows 1 dot
case '.':
if (++dot > 1){
return false;
}
break;
//only allows 1 plus sign
case '+':
if (++plus > 1){
return false;
}
//only allows 1 minus sign
case '-':
if (++minus > 1){
return false;
}
//Only allows 0-9
default:
if (a < '0' || a > '9'){
return false;
}
}
p++;
}
return true;
}
int main(){
//char array of size 1024
char c[1024];
std::cout << "Enter something: ";
std::cin >> c;
for(int i = 0; i < sizeof(c); i++){
if (!isNum(c[i])){
std::cout << c << " is a character string";
}
else {
std::cout << c << " is a number";
}
}
}