题目:若形参ch中是小写字母就转换成大写字母;若是大写字母就 转换成小写字母,若是数字字符就转换成阿拉伯数字,其他字符不变。 最终以ASCII值形式返回主函数输出。 (不采用isupper函数和isdigit函数判断) -------------------------------------------------------*/ #include <stdio.h> int fun(char ch) { /**********Program**********/ /********** End **********/ } int main() { char ch; ch=getchar(); printf("%d\n",fun(ch)); return 0; }
时间: 2023-07-18 15:42:29 浏览: 106
根据题目要求,需要编写一个函数实现将字符转换为大写字母、小写字母或阿拉伯数字,并将转换后的字符以 ASCII 值形式返回。代码实现如下:
```
#include <stdio.h>
int fun(char ch) {
if (ch >= 'a' && ch <= 'z') {
return ch - 'a' + 'A';
} else if (ch >= 'A' && ch <= 'Z') {
return ch - 'A' + 'a';
} else if (ch >= '0' && ch <= '9') {
return ch - '0';
} else {
return ch;
}
}
int main() {
char ch;
ch = getchar();
printf("%d\n", fun(ch));
return 0;
}
```
程序使用 if-else 语句判断字符的类型,并在不同的情况下进行转换。如果是小写字母,将其转换为大写字母;如果是大写字母,将其转换为小写字母;如果是数字字符,将其转换为阿拉伯数字;否则不进行转换。程序输出结果为转换后字符的 ASCII 值。
相关问题
函数fun的功能是进行字母转换。若形参ch是小写英文字母,则转换成对应的大写英文字母;若形参ch是大写英文字母,则转换成对应的小写英文字母;若是其他字符则保持持不变;并将转换后的结果作为函数值返回
可以使用以下代码实现:
```c++
char fun(char ch) {
if(ch >= 'a' && ch <= 'z') { //小写字母
return ch - 'a' + 'A'; //转换成大写字母
} else if(ch >= 'A' && ch <= 'Z') { //大写字母
return ch - 'A' + 'a'; //转换成小写字母
} else { //其他字符
return ch; //保持不变
}
}
```
其中,`ch >= 'a' && ch <= 'z'` 判断 `ch` 是否为小写字母,`ch >= 'A' && ch <= 'Z'` 判断 `ch` 是否为大写字母。`return ch - 'a' + 'A'` 将小写字母转换成大写字母,`return ch - 'A' + 'a'` 将大写字母转换成小写字母,`return ch` 则是返回其他字符本身。
对字符串中的大写字母转小写,并统计元音字母出现次数 编写函数int *count(char *ch_p),形参ch_p指向的字符若是大写字母则用对应的小写字母替换,并使用局部静态变量统计元音字母出现的次数,函数返回该局部静态变
### 回答1:
量的指针。
以下是实现该函数的代码:
```c
#include <stdio.h>
int *count(char *ch_p) {
static int vowels_count[5] = {0}; // 元音字母出现次数
while (*ch_p != '\0') {
if (*ch_p >= 'A' && *ch_p <= 'Z') {
// 大写字母转小写字母
*ch_p += ('a' - 'A');
}
switch (*ch_p) {
case 'a':
vowels_count[0]++;
break;
case 'e':
vowels_count[1]++;
break;
case 'i':
vowels_count[2]++;
break;
case 'o':
vowels_count[3]++;
break;
case 'u':
vowels_count[4]++;
break;
default:
break;
}
ch_p++;
}
return vowels_count;
}
int main() {
char str[] = "Hello World! This is a Test.";
int *vowels_count = count(str);
printf("a: %d\n", vowels_count[0]);
printf("e: %d\n", vowels_count[1]);
printf("i: %d\n", vowels_count[2]);
printf("o: %d\n", vowels_count[3]);
printf("u: %d\n", vowels_count[4]);
return 0;
}
```
运行结果:
```
a: 1
e: 2
i: 2
o: 2
u: 0
```
### 回答2:
请参考以下代码:
```python
#include <stdio.h>
int *count(char *ch_p){
static int vowel_count = 0;
while (*ch_p != '\0'){
if (*ch_p >= 'A' && *ch_p <= 'Z'){
*ch_p += 32; // 大写字母转小写字母
}
if (*ch_p == 'a' || *ch_p == 'e' || *ch_p == 'i' || *ch_p == 'o' || *ch_p == 'u'){
vowel_count++; // 统计元音字母出现次数
}
ch_p++;
}
return &vowel_count;
}
int main(){
char str[] = "Hello World";
int *result = count(str);
printf("转换后的字符串: %s\n", str);
printf("元音字母出现次数: %d\n", *result);
return 0;
}
```
上述代码中,首先定义了一个静态局部变量 `vowel_count` 来统计元音字母出现的次数。函数 `count` 接收一个指向字符的指针 `ch_p`,并对字符串中的字符进行遍历。如果字符是大写字母,则将其转换为小写字母。然后,检查字符是否为元音字母(a、e、i、o、u),如果是,则增加 `vowel_count` 的值。最后,使用 `&vowel_count` 返回静态局部变量的地址,以便在主函数中打印元音字母出现的次数。
### 回答3:
题目要求编写一个函数,实现将字符串中的大写字母都转换成小写字母,并统计元音字母(指的是a、e、i、o、u这五个字母)出现的次数。函数的形参是一个指向字符的指针ch_p,函数返回局部静态变量的值,该变量用于统计元音字母出现的次数。
函数的实现如下:
```c++
int *count(char *ch_p) {
static int vowel_count = 0; // 局部静态变量,用于统计元音字母出现的次数
while (*ch_p != '\0') {
if (*ch_p >= 'A' && *ch_p <= 'Z') { // 如果字符是大写字母
*ch_p += 32; // 转换成小写字母
}
switch (*ch_p) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
vowel_count++; // 元音字母出现次数加1
break;
default:
break;
}
ch_p++; // 指针指向下一个字符
}
return &vowel_count;
}
```
在主函数中调用该函数进行测试:
```c++
#include <iostream>
using namespace std;
int main() {
char str[100];
cout << "请输入字符串:";
cin >> str;
int *vowel_count = count(str);
cout << "将大写字母转换成小写字母后的字符串为:" << str << endl;
cout << "元音字母出现的次数为:" << *vowel_count << endl;
return 0;
}
```
运行程序,输入字符串后,就会输出将大写字母转换成小写字母后的字符串,以及元音字母出现的次数。
阅读全文