C语言编程输入一个字符串strl,把其中的连续非数字的字符 子串换成一个*,存入字符数组str2中,所有数字字符也 必须依次存入str2中。输出str2。
时间: 2024-05-09 17:22:02 浏览: 12
答案如下:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAXLEN 100
void replace_non_digits(char *str1, char *str2) {
int i, j, len;
len = strlen(str1);
for (i = 0, j = 0; i < len; i++) {
if (!isdigit(str1[i])) {
str2[j++] = '*';
} else {
str2[j++] = str1[i];
}
}
str2[j] = '\0';
}
int main() {
char str1[MAXLEN], str2[MAXLEN];
printf("请输入一个字符串:");
fgets(str1, MAXLEN, stdin);
replace_non_digits(str1, str2);
printf("处理后的字符串为:%s\n", str2);
return 0;
}
```
输入一个字符串,调用 replace_non_digits 函数进行处理,将非数字字符替换为 `*`,将数字字符存入 str2 中,最后输出处理后的字符串。注意调用时第二个参数 str2 需要预先分配足够的空间。
相关问题
用c语言输人字符串 strl 和数字 n,将字符串前口个字符前后顺序反转存储在 str2 中并输出。
可以使用双指针的方法,从字符串的两端开始交换字符,直到中间位置。
以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char *str, int n) {
int i = 0, j = n - 1;
while (i < j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
int main() {
char str1[100], str2[100];
int n;
printf("请输入一个字符串和一个数字n:\n");
scanf("%s %d", str1, &n);
// 将前n个字符反转
strncpy(str2, str1, n);
reverse_string(str2, n);
// 将剩余字符复制到str2中
strncpy(str2 + n, str1 + n, strlen(str1) - n);
printf("反转后的字符串为:%s\n", str2);
return 0;
}
```
输入:
```
abcdefg 3
```
输出:
```
反转后的字符串为:cbadefg
```
输人字符串 strl 和数字 口,将字符串前口个字符前后顺序反转存储在 str2 中并输出。
以下是 Python 代码实现:
```python
str1 = input("请输入一个字符串:")
k = int(input("请输入一个数字:"))
str2 = str1[:k][::-1] + str1[k:]
print("反转后的字符串为:", str2)
```
代码解释:
1. 首先使用 `input()` 函数获取用户输入的字符串 `str1` 和数字 `k`。
2. 然后使用切片操作 `str1[:k]` 获取 `str1` 中前 `k` 个字符,再使用字符串反转操作 `[::-1]` 将其反转。
3. 最后将反转后的字符串和 `str1` 中剩余的部分拼接起来,得到新字符串 `str2`。
4. 使用 `print()` 函数输出结果。