字符串转整数的程序实现
字符串和整数是两种最基本的数据类型,在编程中经常需要进行数据转换。字符串转整数是一种常见的转换操作,它可以将数字表示的字符串转换为整数类型。
字符串转整数有多种实现方法,常用的方法有:
3. 使用`std::stoi`函数
`std::stoi`是C++标准库中定义的函数,它可以将字符串转换为整数类型。该函数可以接收两个参数,第一个参数是需要转换的字符串,第二个参数是可选的,它指定转换时使用哪个进制(默认值为10)。例如,以下代码将字符串`“123”`转换为整数类型:
int main() {
std::string myString = "123";
int myInt = std::stoi(myString);
std::cout << myInt << std::endl; // 输出123}
4. 使用`atoi`函数
`atoi`函数是C标准库中定义的函数,它也可以将字符串转换为整数类型。该函数的原型为:
int atoi(const char str);
其中,`str`是要转换的字符串。该函数返回转换后的整数。例如,以下代码将字符串`"123"`转换为整数类型:
int main() {
char myString[] = "123";
int myInt = atoi(myString);
printf("%d\n", myInt); // 输出123
}
5. 使用`sscanf`函数
`sscanf`函数是C标准库中定义的函数,它可以从字符串中读取格式化数据。该函数的原型为:
int sscanf(const char str, const char format, ...);
其中,`str`是要读取的字符串,`format`是要读入数据的格式字符串,`...`是要读入数据的变量列表。该函数返回成功读入数据的个数。例如,以下代码将字符串`"123"`转换为整数类型:
int main() {
char myString[] = "123";
sscanf(myString, "%d", &myInt);
printf("%d\n", myInt); // 输出123
}
正则表达式是一种字符串匹配模式,它可以用来搜索字符串中的子字符串。正则表达式可以用来从字符串中提取数字,从而实现字符串转整数的操作。例如,以下代码使用正则表达式来将字符串`"123"`转换为整数类型:
使用for循环逐个读取字符串中的字符,如果字符是数字,就将字符转换为数字并累加到一个整数变量中。例如:
int main() {
std::string myString = "123";
int myInt = 0;
for (int i = 0; i < myString.length(); i++) {if (isdigit(myString[i])) {
myInt = myInt 10 + (myString[i] - '0');
}
}
std::cout << myInt << std::endl; // 输出123}
8. 使用atoi()函数
int main() {
char str[] = "123";
int num = atoi(str); // 将字符串转换为整数
printf("%d\n", num); // 输出123
}
`atoi()` 函数将字符串中的数字字符转换为整数,并返回转换后的值。该函数会忽略字符串中的非数字字符,例如空格、字母等。在上面的代码中,`atoi()` 函数将字符串 `"123"` 转换为整数,并将其存储在变量 `num` 中。然后,函数将变量 `num` 的值打印到控制台,输出结果为 123。
9. 使用strtol()函数
int main() {
char str[] = "123";
char endptr = NULL;
long num = strtol(str, &endptr, 10); // 将字符串转换为整数,并指定进制为10
printf("%ld\n", num); // 输出123
}
`strtol()` 函数是 C 语言库中另一个用于将字符串转换为整数的函数。与 `atoi()` 函数类似,`strtol()` 函数会忽略字符串中的非数字字符,并返回转换后的值。但是,`strtol()` 函数允许您指定转换时使用的进制,这使得它能够处理不同进制的字符串。
在上面的代码中,`strtol()` 函数将字符串 `"123"` 转换为整数,并将其存储在变量 `num` 中。函数还指定进制为 10,这表示字符串中的数字应按十进制格式解析。然后,函数将变量 `num` 的值打印到控制台,输出结果为 123。
10. 使用stringstream
int main() {
std::string str = "123";
std::stringstream ss(str);
ss >> num; // 将字符串转换为整数
std::cout << num <>` 和 `<>` 操作符从字符串流中读取数据,并将其存储在变量 `num` 中。最后,我们使用 `<<` 操作符将变量 `num` 的值打印到控制台,输出结果为 123。