c语言判断字符串中的整数
时间: 2024-09-19 07:18:18 浏览: 50
在C语言中,可以使用标准库函数`isdigit()`或者自定义算法来判断一个字符串是否包含有效的整数。以下是两种常见方法:
1. 使用`isdigit()`函数:
```c
#include <ctype.h>
int is_integer(char *str) {
while (*str != '\0') {
if (!isdigit(*str)) {
return 0; // 非数字字符遇到,不是整数
}
str++;
}
// 如果遍历完整个字符串都没遇到非数字字符,那么它可能是整数
return *str == '\0';
}
```
2. 自定义循环检测算法:
```c
int is_integer_custom(char *str) {
int num = 0;
int sign = 1; // 正负标志,默认正
char prev_char = '\0'; // 上一个字符,用于处理前导零
while (*str != '\0') {
if (prev_char == '0' && *str == '0') {
// 排除无意义的连续零
} else if (*str == '+' || *str == '-') {
sign = (*str == '-') ? -1 : 1;
str++;
continue;
} else if (!isdigit(*str)) {
break; // 遇到非数字字符,结束检查
}
num = num * 10 + (*str - '0');
str++;
prev_char = *str;
}
return !isspace(*str) && num != 0 && sign > 0; // 检查是否有有效整数,排除空字符串和仅包含负号的情况
}
```
阅读全文