根据代码int StrToInt(char *s) { char ss[32]; if(strlen(s)==1) return s[0]-'0';输入一串数字字符串,将其转换成整数输出。运用递归算法实现C语言代码
时间: 2024-05-06 21:15:04 浏览: 238
delphi函数小结
以下是使用递归算法实现将数字字符串转换成整数的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int StrToInt(char *s);
int main()
{
char s[32];
printf("请输入一个数字字符串:");
scanf("%s", s);
int num = StrToInt(s);
printf("转换后的整数为:%d\n", num);
return 0;
}
int StrToInt(char *s)
{
int len = strlen(s);
if (len == 1)
{
return s[0] - '0';
}
int num = StrToInt(s + 1); // 递归调用
return (s[0] - '0') * (int)pow(10, len - 1) + num;
}
```
代码逻辑如下:
1. 如果字符串长度为1,直接返回第一个字符减去字符0的值。
2. 如果字符串长度大于1,递归调用函数StrToInt(s + 1),将字符串的第2个字符开始的子串转换成整数。
3. 将字符串的第1个字符减去字符0的值,乘以10的(len-1)次方,再加上上一步得到的整数。返回这个结果。
阅读全文