c++检查int或char并返回文本
C++ checking an int or char and returning a text
我想知道是否有一个特定的函数来检查输入是int还是字符。
然后返回一个答案,如"这是一个整数"或"这是一个字符"。
如果没有特定的转换功能,我应该如何去做?
提前感谢!!
将输入作为字符串。检查字符串是由单个字符还是多个字符(仅限数字)组成。然而,你认为"2"是什么?字符2或整数2 ?
您可以使用isdigit函数检查输入的字符是否是整数,检查数字0 1 2 3 4 5 6 7 8 9如:
#include<iostream>
using namespace std;
int main(){
char inp;
cin>>inp;
if(isdigit(inp))
cout<<"Integer";
else
cout<<"Character";
return 0;
}
我就是这么做的
#include<ctype.h>
str_int_check(char *a)//checks weather all elements of string are integers
{
int flag= 0;
for(int i = 0; a[i]; i++)
{
if(isdigit(a[i])) ;
else if (a[i]== '-' && i == 0);//in case of negative values
else
{
flag = -1;
break;
}
}
return flag; //returns 0 if all characters are digit, else returns 1
}
我更喜欢试错方法:尝试将传入的字符串解析为整数,检查错误,如果是,传递的值不是整数。例如,strtol
有非常方便的接口:
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <errno.h>
const char* the_answer(const char* str) {
char* end; // Pointer to first invalid character found by strtol
const char* endstr = str + std::strlen(str); // Last character in string
long val = strtol(str, &end, 10);
if(val == 0) {
// Not all characters were parsed, consider as characters
if(endstr != end)
return "This is an characters";
// This is valid, but too long integer to be kept in long type
if(errno == ERANGE)
return "This is an integer";
}
return "This is an integer";
}
给出如下:
0 This is an integer
20 This is an integer
-20 This is an integer
2000000000000000000000000000000000000000000000000000 This is an integer
0xABCD This is an characters
Hello, World This is an characters
注:从the_answer
返回字符串实际上是笑话,返回枚举值或布尔值。
相关文章:
- 如何在C++中以这种方式返回一行文本?
- 返回从字符串文本创建的静态string_view是否安全?
- fscanf 在尝试返回文本文件的第一行时返回 -1
- 基于模板字符串文本返回的 c++ 函数指针
- std::string::find 为取消引用的迭代器和等效字符串文本返回不同的值
- 我想读取文本文件中的所有内容(但文本文件中只有一个双精度值),转换为双精度值并返回值
- FindResource 调用返回 RCDATA 类型的文本文件的 NULL
- 我的代码一直返回0作为文本文件中的小数数
- 函数读取最大和min int值,并用文本字符串返回
- 问题 - 递归函数以返回文本文件排列
- C++程序不返回文件中文本和字符串数据的值
- 搜索文本文件并返回等号后的值
- 任何人都知道如何解决尝试将从MySQL数据库返回的行打印到文本文件(.txt)中的C++
- 有没有更好的方法可以从静态和非静态函数返回相同的字符串文本
- 使用关键字从文本文件返回数字
- 使用 sqlite3 和 C++ 绑定和返回文本数据
- 给定一个单词和一个文本,返回文本中单词字谜的出现次数
- PInvoke:从c++返回文本到c#时出错
- 通过引用和内联返回文本
- c++检查int或char并返回文本