用C或C++语言编写程序判断一个字符串是否为常数

是这样的,想请讲解下,用C或C++语言编写程序判断一个字符串是否为常数
最新回答
瞳孔渲染柔情╮

2024-10-02 06:50:52

二进制、八进制、十进制、十六进制数,还包括小数
那么合法的字符有:
数字0-9, 字母a-f, 大写A-F, 还有小数点, 只要判断输入的字符串中的字符是否是以上字符就可以了.

假设不考虑输入的合法性, 比如两个小数点连在一起, 串中有空格等, 那么一个简单的实现如下:

#include <iostream>
#include <string>

using namespace std ;

void Input(char string[])
{
cout << "Input a string: " << endl ;
cin >> string ;
}

bool IsInRange(char ch)
{
switch ( ch )
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'a':
case 'A':
case 'b':
case 'B':
case 'c':
case 'C':
case 'd':
case 'D':
case 'e':
case 'E':
case 'f':
case 'F':
case '.':
return true ;
default:
return false ;
}

}
int main(void)
{
bool flag = true ;
char buffer[20] ;
Input(buffer) ;
for ( int i = 0 ; i < strlen(buffer) ; i++ )
{
if( (flag = IsInRange(buffer[i])) == false )
{
cout << "This is not a constant number !" << endl ;
break ;
}
}
if( flag == true )
cout << "This is a constant number !" << endl ;
return 0 ;
}