从键盘读一个字符串,保存到数组中,所有大写字母变小写并统计调整了多少个字符。
时间: 2023-06-01 09:01:45 浏览: 86
### 回答1:
可以使用以下步骤实现:
1. 从键盘读入一个字符串,可以使用scanf或者fgets函数。
2. 创建一个字符数组来保存读入的字符串。
3. 遍历数组,将所有大写字母转换为小写字母,并统计转换的字符数。
4. 输出转换后的字符串和转换字符数。
以下是示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int count = 0;
printf("请输入一个字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) { // 判断是否为大写字母
str[i] = tolower(str[i]); // 转换为小写字母
count++; // 统计转换字符数
}
}
printf("转换后的字符串为:%s\n", str);
printf("转换了 %d 个字符\n", count);
return 0;
}
```
### 回答2:
首先,我们需要用C语言中的数组来保存从键盘中读取到的字符串。可以使用字符型数组char str[]来存储读入的字符串。我们可以使用scanf函数来读取键盘输入的字符串,如下所示:
```c
char str[100];
scanf("%s", str);
```
接下来,我们需要遍历整个字符串数组,将其中的所有大写字母都转换成小写字母。我们可以使用ASCII码来实现这个功能。大写字母的ASCII码范围是65~90,小写字母的ASCII码范围是97~122。因此,我们可以通过判断字符的ASCII码是否在大写字母的范围内来判断它是否是大写字母,然后再通过把该字符的ASCII码加上32来完成其转换成小写字母的过程。具体代码实现如下:
```c
int i, count = 0;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] += 32; // 大写字母转换成小写字母
count++; // 统计转换的字符个数
}
}
```
最后,我们可以使用变量count来统计调整了多少个字符。完整的程序代码如下:
```c
#include <stdio.h>
int main() {
char str[100];
scanf("%s", str);
int i, count = 0;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] += 32; // 大写字母转换成小写字母
count++; // 统计转换的字符个数
}
}
printf("转换后的字符串为:%s\n", str);
printf("共调整了 %d 个字符。\n", count);
return 0;
}
```
当我们输入一个字符串,如"Hello, World!"时,程序会输出:
```
转换后的字符串为:hello, world!
共调整了 7 个字符。
```
### 回答3:
这道题目可以使用C语言来实现。
首先,我们需要定义一个数组来保存从键盘上读入的字符串。具体代码如下:
```
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
```
接下来,我们需要遍历字符串中的每个字符,如果该字符是大写字母,则将其转换为小写字母,并记录转换的次数。
具体代码如下:
```
int count = 0; // 记录转换的次数
int len = strlen(str); // 获取字符串的长度
for (int i = 0; i < len; i++) {
// 如果是大写字母,则转换为小写字母
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] += 'a' - 'A';
count++;
}
}
```
在此代码中,我们首先定义了一个变量count来记录转换的次数,初始化为0。然后使用strlen函数获取字符串的长度,使用for循环遍历每个字符,并判断是否为大写字母。如果是大写字母,则将其转换为小写字母,并将count加1。
最后,我们可以输出转换后的字符串及转换的次数,具体代码如下:
```
printf("转换后的字符串为:%s\n", str);
printf("转换的次数为:%d\n", count);
```
完整代码如下:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int count = 0; // 记录转换的次数
int len = strlen(str); // 获取字符串的长度
for (int i = 0; i < len; i++) {
// 如果是大写字母,则转换为小写字母
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] += 'a' - 'A';
count++;
}
}
printf("转换后的字符串为:%s\n", str);
printf("转换的次数为:%d\n", count);
return 0;
}
```
阅读全文