用C语言从给定的字符串中依次取出数字字符组成一个整数(例如,从“a1b4c285de”中取出前5个数字字符组成一个整数14285),判断整数是否为 回 文数。 [编程要求] 1、编写函数int test(char a[]);从a指向的字符串中取出数字字符,并用取出的数字字符组成一个整数返回; 2、编写函数int hw(int a);判断a是否为回文数,若是则函数返回1,否则返回0. 3、编写main函数,输入测试字符串,调用test函数和hw函数,将组成的整数n及是否为回文数的判断结果输出到屏幕. 输入: alb4c285de 输出:(数值后有一个空格, no和yes后没有空格) 14285 no 输入: 13ab2c31ddc 输出: 13231 yes
时间: 2024-03-16 12:41:18 浏览: 76
好的,我明白了。下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// 从字符串中取出数字字符组成一个整数
int test(char a[]) {
int n = strlen(a);
int res = 0;
for (int i = 0; i < n; i++) {
if (isdigit(a[i])) {
res = res * 10 + a[i] - '0';
}
}
return res;
}
// 判断整数是否为回文数
int hw(int a) {
int b = a;
int res = 0;
while (b > 0) {
res = res * 10 + b % 10;
b /= 10;
}
return res == a;
}
int main() {
char a[100];
printf("请输入测试字符串:");
scanf("%s", a);
int n = test(a);
printf("%d ", n);
if (hw(n)) {
printf("yes");
} else {
printf("no");
}
return 0;
}
```
输入样例:
```
alb4c285de
```
输出样例:
```
14285 no
```
阅读全文