请编写一个C 函数,该函数将给定的一个字符串转换成整数。
时间: 2023-06-20 14:04:08 浏览: 188
以下是一个将字符串转换为整数的C函数示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int atoi(char *str)
{
int result = 0;
int sign = 1;
int i = 0;
// 处理空格
while (isspace(str[i])) {
i++;
}
// 处理正负号
if (str[i] == '-' || str[i] == '+') {
sign = (str[i++] == '-') ? -1 : 1;
}
// 处理数字
while (isdigit(str[i])) {
result = (result * 10) + (str[i++] - '0');
}
return sign * result;
}
int main()
{
char str[] = "12345";
int num = atoi(str);
printf("%d\n", num);
return 0;
}
```
该函数首先处理空格,然后处理正负号,最后处理数字并将其转换为整数。函数返回整数值。该函数还使用了 `<ctype.h>` 中的 `isspace()` 和 `isdigit()` 函数来判断字符是否为空格或数字。
相关问题
请编写一个 C 函数,该函数将给定的一个字符串转换成整数
好的,以下是一个简单的 C 函数,可以将给定的字符串转换成整数:
```c
#include <stdio.h>
#include <stdlib.h>
int str_to_int(char* str) {
int result = 0;
int sign = 1;
if (*str == '-') {
sign = -1;
str++;
}
while (*str != '\0') {
if (*str >= '0' && *str <= '9') {
result = result * 10 + (*str - '0');
} else {
printf("Invalid input!\n");
exit(1);
}
str++;
}
return result * sign;
}
```
这个函数首先检查字符串的第一个字符是否为负号,如果是,就将符号标记设置为负数,并将指针指向下一个字符。然后,它遍历字符串中的每个字符,如果字符是数字,则将其转换为整数并将其添加到结果中。如果字符不是数字,则函数将输出错误消息并退出。最后,函数返回结果乘以符号标记。
编写一个c函数,该函数将给定的一个字符串转换成整数
好的,以下是一个将字符串转换成整数的示例C函数:
```c
#include <stdio.h>
int str2int(char *str) {
int num = 0, sign = 1, i = 0;
if (str[0] == '-') {
sign = -1;
i++;
}
for (; str[i] != '\0'; i++) {
num = num * 10 + str[i] - '0';
}
return sign * num;
}
int main() {
char str[] = "12345";
int num = str2int(str);
printf("%d\n", num);
return 0;
}
```
这个函数将给定的字符串转换成整数,包括负数和正数。如果你传递给这个函数的字符串不能转换成整数,它将返回0。希望对你有帮助!
阅读全文