用c语言写一个字符串转整形的代码
时间: 2023-08-31 20:30:31 浏览: 139
### 回答1:
int str2int(char *str) {
int result = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
result = result * 10 + (str[i] - '0');
}
return result;
}
### 回答2:
C语言中可以使用atoi函数将字符串转换为整数。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("转换后的整数为: %d\n", num);
return 0;
}
```
上述代码中,首先包含了<stdio.h>和<stdlib.h>头文件,分别用于输入输出和动态内存分配。然后定义了一个字符数组str来存储要转换的字符串"12345"。接下来使用atoi函数将字符串转换为整数,并将转换结果赋值给整型变量num。最后使用printf函数输出转换后的整数。
也可以通过自己编写字符串转换为整数的函数,实现类似的功能。
```c
#include <stdio.h>
int stringToInt(char str[]) {
int num = 0;
for (int i = 0; str[i] != '\0'; i++) {
num = num * 10 + (str[i] - '0');
}
return num;
}
int main() {
char str[] = "12345";
int num = stringToInt(str);
printf("转换后的整数为: %d\n", num);
return 0;
}
```
上述代码中,首先定义了一个自定义函数stringToInt,用于将字符串转换为整数。该函数通过遍历字符串的每个字符,将其转换为对应的整数,并累加到num变量上。最后将累加的结果返回作为整数。
在主函数main中,定义了一个字符数组str存储要转换的字符串"12345",然后调用自定义函数stringToInt将字符串转换为整数,并将转换结果赋值给整型变量num。最后使用printf函数输出转换后的整数。
### 回答3:
下面是一个用C语言编写的字符串转整型的代码示例:
```c
#include <stdio.h>
int stringToInt(char *str) {
int result = 0; // 初始化结果变量
int sign = 1; // 符号位,默认为正数
// 检查第一个字符是否为 '-',如果是,则将符号位设为负数,同时将指针指向下一个字符
if (*str == '-') {
sign = -1;
str++;
}
// 遍历字符串中的每个字符
while (*str) {
// 检查当前字符是否为数字
if (*str >= '0' && *str <= '9') {
// 将字符转换为数字,并与结果相乘后累加到结果变量中
result = result * 10 + (*str - '0');
} else {
// 如果当前字符不是数字,则退出循环
break;
}
// 将指针指向下一个字符
str++;
}
// 返回结果(乘以符号位)
return result * sign;
}
int main() {
char str[] = "12345";
int num = stringToInt(str);
printf("%d\n", num); // 输出结果:12345
char str2[] = "-9876";
int num2 = stringToInt(str2);
printf("%d\n", num2); // 输出结果:-9876
return 0;
}
```
这个代码中的 `stringToInt` 函数接受一个指向字符串的指针,并将字符串转换为对应的整数值。它遍历字符串中的每个字符,将其转换为对应的数字,并通过累加操作得到最终的整数值。如果字符串中包含负号,则将符号位设为负数。最后,将结果与符号位相乘并返回。
在示例中,我们分别将字符串 "12345" 和 "-9876" 转换为整数,并打印输出结果。
阅读全文