对输入的字符串(长度<100)进行数字字符和其他字符的提取,然后将提取得到的其他字符重新组成一个新的字符串输出,将提取得到的数字字符组合为一个整数,并输出该整数的两倍的值。 【输入形式】 字符串(长度<100) 【输出形式】 提取该字符串中的数字字符组成的一个整数的两倍的值及其它字符组成的字符串
时间: 2024-03-21 18:44:37 浏览: 66
输入一串字符和输出
好的,以下是 C 语言的实现代码,可以对输入的字符串进行数字字符和其他字符的提取,然后将提取得到的其他字符重新组成一个新的字符串输出,将提取得到的数字字符组合为一个整数,并输出该整数的两倍的值:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char s[101], digits[101], non_digits[101];
int num = 0;
scanf("%s", s);
int len = strlen(s);
int nd_idx = 0; // 非数字字符的下标
int d_idx = 0; // 数字字符的下标
for (int i = 0; i < len; i++) {
if (isdigit(s[i])) {
digits[d_idx++] = s[i];
num = num * 10 + (s[i] - '0');
} else {
non_digits[nd_idx++] = s[i];
}
}
digits[d_idx] = '\0';
non_digits[nd_idx] = '\0';
printf("%d\n", num * 2);
printf("%s", non_digits);
return 0;
}
```
首先,定义一个字符数组 `s` 存储从键盘输入的字符串,定义一个字符数组 `digits` 存储提取得到的数字字符,定义一个字符数组 `non_digits` 存储提取得到的非数字字符。定义一个整型变量 `num` 存储组成的整数,初始值为 0。用 `scanf()` 函数读取输入的字符串。然后,用一个循环遍历字符串的每个字符,如果该字符是数字,则将其加入 `digits` 数组中,并更新 `num` 的值;否则将其加入 `non_digits` 数组中。最后,将 `digits` 数组和 `non_digits` 数组的末尾加上空字符,以便输出时作为字符串输出。输出组成的整数的两倍的值和提取得到的非数字字符组成的字符串即可。
阅读全文