根据代码int StrToInt(char *s) { char ss[32]; if(strlen(s)==1) return s[0]-'0';输入一串数字字符串,将其转换成整数输出。运用递归算法实现C语言代码
时间: 2024-05-06 18:15:04 浏览: 248
以下是使用递归算法实现将数字字符串转换成整数的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)次方,再加上上一步得到的整数。返回这个结果。
相关问题
import randomnum=random.randint(0,10) print('--------哈哈工作室----------')def strToint(temp): try: g=int(temp) return g except: print('出错啦!请输入一个非0数字哦')temp=input('输入一个非0数字吧:')guess=strToint(temp)n=0while(guess!=num and n<2): if(guess>num): print('大了大了,你还有'+(str)(2-n)+'次机会哦') n=n+1 else: print('小了小了,你还有'+(str)(2-n)+'次机会哦') n=n+1 temp=input('再猜一个数字吧:') guess=int(temp)if(n==2): print('太遗憾了,你已经没有机会了')else: print('你太厉害了,猜对了!')print("游戏结束")
这是一个猜数字的小游戏,用户需要输入一个非0数字,程序会随机生成一个0到10之间的数字,用户需要在3次机会内猜中这个数字。如果猜错了,程序会提示用户猜的数字是偏大还是偏小,同时告诉用户还有几次机会。如果猜对了,程序会输出“你太厉害了,猜对了!”,游戏结束。如果用户用完了3次机会还没有猜中,程序会输出“太遗憾了,你已经没有机会了”,游戏结束。
sum = sum * 10 + s[i] - '0';
这段代码的作用是将字符串 s 中第 i 个字符转换为数字,并且将其加到 sum 的末尾。
具体解释如下:
- s[i] 表示字符串 s 中的第 i 个字符。
- '0' 是字符常量,它的 ASCII 码值为 48,表示数字 0。
- s[i] - '0' 将字符转换为数字,例如字符 '5' 转换为数字 5。
- sum * 10 将 sum 的值乘以 10,相当于将 sum 左移一位。
- sum * 10 + s[i] - '0' 将新的数字加到 sum 的末尾。例如,如果 sum 的值为 123,s[i] 的值为 5,则执行后 sum 的值为 1235。
因此,这段代码的作用是将一个字符串转换为数字,具体实现可见下面的示例代码:
```c++
int strToInt(string s) {
int sum = 0;
for (int i = 0; i < s.size(); i++) {
sum = sum * 10 + s[i] - '0';
}
return sum;
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![](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)