、在主函数中输入 20个字符,把字符串中所有的大写字母改写成 小与字母,其它的宇符不变,转换过程在自定义函数中完成,并在主函数中输出结果。
时间: 2024-03-19 13:46:02 浏览: 14
好的,这是一个字符串处理问题,我们可以按照以下步骤来解决:
1. 在主函数中输入 20 个字符,可以使用 `scanf` 函数来实现。
2. 定义一个自定义函数,用于将字符串中的大写字母转换成小写字母。函数的参数为一个字符串指针,函数的返回值为无。
3. 在自定义函数中,遍历字符串中的每一个字符,如果该字符是大写字母,则将其转换成小写字母。
4. 在主函数中调用自定义函数,将输入的字符串作为参数传递给自定义函数。
5. 在主函数中输出转换后的字符串。
下面是代码示例:
```c
#include <stdio.h>
void convertToLower(char *str) {
while (*str != '\0') {
if (*str >= 'A' && *str <= 'Z') { // 如果是大写字母
*str = *str + ('a' - 'A'); // 转换成小写字母
}
str++; // 指针移动到下一个字符
}
}
int main() {
char str[21]; // 字符串数组,长度为 20 + 1
printf("请输入 20 个字符:");
scanf("%20s", str);
convertToLower(str);
printf("转换后的字符串是:%s\n", str);
return 0;
}
```
注意,我们在 `scanf` 函数中使用了 `%20s` 格式化字符串,这是为了限制用户输入的字符串长度不能超过 20。同时,我们在定义字符串数组时,长度也应该为 20 + 1,因为字符串末尾需要添加一个空字符 `\0`。