题目:函数digit(char str[])抽取字符串str中的数字,用抽取到的 数字组成整数,并返回该整数。字符串str中可能包含 小写英文字母和数字字符0-9,函数digit只抽取其中 的数字字符组成整数。如str为”asd123fgh34sxc1”, 则抽取到的数字组成的整数为123341,请完成该函数的编写。 说明:测试用例保证不会发生整数越界。
时间: 2024-04-13 18:29:44 浏览: 62
你可以使用以下代码来实现函数digit(char str[]):
```c
#include <stdio.h>
#include <ctype.h>
int digit(char str[]) {
int result = 0;
int i = 0;
while (str[i] != '\0') {
if (isdigit(str[i])) {
result = result * 10 + (str[i] - '0');
}
i++;
}
return result;
}
int main() {
char str[] = "asd123fgh34sxc1";
int num = digit(str);
printf("抽取到的数字组成的整数为:%d\n", num);
return 0;
}
```
这个函数首先初始化一个结果变量为0,然后遍历字符串中的每个字符。如果字符是数字字符,则将其转换为数字并添加到结果中。最后返回结果即可。
在上面给出的示例代码中,函数digit被调用,并将抽取到的数字组成的整数打印出来。输出结果为:123341。
相关问题
抽取整数中偶数数字反序组成新整数
好的,这是一个简单的问题,我可以给你一个解决方案。首先,你需要把整数转换成字符串,然后遍历字符串中的每个字符,判断它是否是偶数数字,如果是,就把它添加到一个新的字符串中。最后,把新的字符串转换成整数并反转即可。下面是一个 Python 代码示例:
```python
def reverse_even_digits(num):
# 将整数转换为字符串
num_str = str(num)
# 用于存储偶数数字的字符串
even_digits_str = ""
# 遍历字符串中的每个字符
for digit in num_str:
# 判断字符是否是偶数数字
if int(digit) % 2 == 0:
even_digits_str += digit
# 将新的字符串反转并转换为整数
reversed_num = int(even_digits_str[::-1])
return reversed_num
```
使用这个函数,你可以输入一个整数,比如 `12345678`,它会返回一个新整数 `8642`,这个新整数是原来整数中偶数数字反序组成的。
编写函数统计传入函数的字符串中数字字母空格以及其他字符的个数并返回结果
下面是一个实现该功能的 Python 函数:
```python
def count_chars(string):
count_dict = {'digit': 0, 'letter': 0, 'space': 0, 'other': 0}
for char in string:
if char.isdigit():
count_dict['digit'] += 1
elif char.isalpha():
count_dict['letter'] += 1
elif char.isspace():
count_dict['space'] += 1
else:
count_dict['other'] += 1
return count_dict
```
这个函数接收一个字符串参数 `string`,然后遍历字符串中的每个字符,判断它属于数字、字母、空格还是其他字符,最终返回一个包含这些字符数量的字典。其中,`isdigit()` 方法可以判断一个字符是否是数字,`isalpha()` 方法可以判断一个字符是否是字母,`isspace()` 方法可以判断一个字符是否是空格。