编写完整程序 字符与整形函数的互相转换函数 。 将字符串转化为整形数: 将整形数转化为字符串; 学会 调用函数库函数(isspace、isdigit函数)。
时间: 2024-12-15 21:24:42 浏览: 7
编写完整的字符与整型函数互相转换的程序可以分为两个部分:字符串转整型和整型转字符串。这里我会给出C++语言的一个示例,利用`std::stoi`(字符串转整型)和`std::to_string`(整型转字符串),同时使用`isspace`和`isdigit`函数检查输入的合法性。
```cpp
#include <iostream>
#include <string>
// 函数:将字符串转化为整型
int str_to_int(const std::string &str) {
try {
return std::stoi(str);
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid input: " << str << std::endl;
// 使用 isspace 和 isdigit 检查输入是否全由数字组成
for (char c : str) {
if (!std::isdigit(c)) {
throw std::invalid_argument("Input contains non-digit characters.");
}
}
throw; // 如果有非数字字符,仍抛出异常
}
}
// 函数:将整型转化为字符串
std::string int_to_str(int num) {
return std::to_string(num);
}
int main() {
std::string str_input;
int int_value;
std::cout << "Enter a number: ";
std::getline(std::cin, str_input); // 读取一行,包括空格
try {
int_value = str_to_int(str_input);
std::cout << "Converted to integer: " << int_to_str(int_value) << std::endl;
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
// 示例:使用 isspace 和 isdigit 函数检查字符
char ch;
while (std::cin >> ch) {
if (isspace(ch)) continue;
if (isdigit(ch)) std::cout << ch << " is a digit.\n";
else std::cout << ch << " is not a digit.\n";
}
return 0;
}
```
在这个程序中,用户会被提示输入一个数字,然后我们会尝试将其转换为整数并打印出来。如果输入的不是有效的数字(包含非数字字符),则会捕获`std::invalid_argument`异常,并使用`isspace`和`isdigit`检查字符。运行此程序时,请确保只输入数字,因为`isspace`用于处理空格和其他空白字符。
阅读全文