int fun(char* str) { int result = 0; int sign = 1; int i = 0; if (str[0] == '-') { sign = -1; i = 1; } for (; str[i] != '\0'; i++) { result = result * 10 + (str[i] - '0'); } return sign * result;}
时间: 2024-04-29 12:20:15 浏览: 13
这段代码是一个将字符串转换为整数的函数,它首先判断字符串的符号,如果是负数则将符号标记为-1,将i初始化为1,否则将符号标记为1,将i初始化为0。然后对字符串进行遍历,计算结果result = result * 10 + (str[i] - '0'),其中(str[i] - '0')是将字符转换为对应的数字。最后将符号和结果相乘得到最终结果,返回整数。
相关问题
功能:编写函数long fun ( char *p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 例如:若输入字符串"-1234",则函数把它转换为整数值 -1234。
好的,这是一个将数字字符串转换为整数的问题。以下是一个可能的实现方式:
```c
#include <stdio.h>
#include <ctype.h>
long fun(char *p) {
int sign = 1; // 保存符号位,默认为正数
long result = 0; // 保存转换后的整数值
// 跳过空格
while (isspace(*p)) {
p++;
}
// 判断符号位
if (*p == '+' || *p == '-') {
sign = (*p == '+') ? 1 : -1;
p++;
}
// 转换数字字符串为整数
while (isdigit(*p)) {
result = result * 10 + (*p - '0');
p++;
}
return sign * result;
}
int main() {
char str[] = "-1234";
printf("%ld\n", fun(str)); // 输出 -1234
return 0;
}
```
该函数的实现基本思路是:先跳过字符串中的空格;如果有符号位,则根据符号位确定整数的正负;然后遍历字符串中的数字字符,将它们转换为整数。需要注意的是,由于本题只涉及整数的转换,因此没有对浮点数、指数、溢出等情况进行处理。
6編写函数fun将一个数宇字符串转换为一个整数(不得调用 C语言提供的将宇符串转换为整数的函数)。
可以使用以下函数来实现将一个数字字符串转换为整数的功能:
```c
#include <stdio.h>
int fun(char *str) {
int result = 0;
int sign = 1;
int i = 0;
if (str[i] == '-') {
sign = -1;
i++;
}
while (str[i] != '\0') {
result = result * 10 + (str[i] - '0');
i++;
}
return sign * result;
}
int main() {
char str[] = "-12345";
int num = fun(str);
printf("%d\n", num);
return 0;
}
```
该函数首先判断字符串的正负号,然后使用循环将字符串中每个字符转换为数字并构造整数值。函数返回的整数值就是字符串表示的整数。注意在构造整数值时需要减去字符 '0' 的 ASCII 码值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)