以下程序中的letters( )函数,主函数调用该函数用以将字符数组str1中出现的英文字母依次存放在字符数组str2中(所有大写字母在前,小写字母在后)。如输入输出样例所示:
时间: 2024-02-23 13:58:28 浏览: 76
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
很好,我理解了你的要求。以下是程序代码:
```c
#include<stdio.h>
#include<string.h>
void letters(char str1[], char str2[]) {
int i, j, k;
char temp;
for (i = 0; i < strlen(str1); i++) {
if ((str1[i] >= 'a' && str1[i] <= 'z') || (str1[i] >= 'A' && str1[i] <= 'Z')) {
for (j = 0; j < i; j++) {
if (str2[j] == str1[i]) {
break;
}
}
if (j == i) {
for (k = 0; k < strlen(str2); k++) {
if (str2[k] > str1[i]) {
break;
}
}
for (int l = strlen(str2); l > k; l--) {
str2[l] = str2[l - 1];
}
str2[k] = str1[i];
}
}
}
}
int main() {
char str1[100], str2[100] = { '\0' };
scanf("%s", str1);
letters(str1, str2);
printf("%s", str2);
return 0;
}
```
程序中的 `letters()` 函数实现了将字符数组 `str1` 中出现的英文字母依次存放在字符数组 `str2` 中的功能。具体实现思路如下:
1. 遍历字符数组 `str1` 中的每个字符,判断其是否为英文字母。
2. 如果是英文字母,则再判断其是否已经在 `str2` 中出现过。如果已经出现过,则不再重复添加;否则,按照字母大小写顺序将其插入到 `str2` 中合适的位置。
3. 最后,输出经过处理后的字符数组 `str2`。
希望这个回答对你有所帮助。
阅读全文