编写一个函数tolower,它将字符串中的大写字母改写成小写字母,并返回总共改写的字符个数。字符串由参数传递而来
时间: 2023-03-07 15:31:52 浏览: 108
答:可以使用如下函数来完成:
```
int tolower(string str)
{
int count = 0;
for (int i=0; i<str.length(); i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
str[i] = str[i] + 32;
count++;
}
}
return count;
}
```
相关问题
如何用C语言编写一个函数tolower,它将字符串中的大写字母改写成小写字母,并返回总共改写的字符个数。字符串由参数传递而来。
可以使用以下函数编写tolower:int tolower (char *s) {int count = 0;while (*s != '\0') {if (*s >= 'A' && *s <= 'Z') {*s = *s + 32; count++;}s++;return count;}
编写函数void toLower(char *s),函数的功能是将字符串中的所有大写字母转换成小写字母,其他字符不变。编写main函数调用toLower函数。
下面是一个实现将字符串中的大写字母转换成小写字母的`toLower`函数以及调用该函数的`main`函数的示例代码:
```c
#include <stdio.h>
// 函数声明
void toLower(char *s);
int main() {
char str[100];
// 读取字符串输入
printf("请输入一个字符串:");
gets(str);
// 调用toLower函数
toLower(str);
// 输出转换后的字符串
printf("转换后的字符串为:%s\n", str);
return 0;
}
// 将字符串中的大写字母转换成小写字母
void toLower(char *s) {
while (*s) {
if (*s >= 'A' && *s <= 'Z') {
*s = *s + 32; // 大写字母转换成小写字母的ASCII码差值为32
}
s++;
}
}
```
在这段代码中,`toLower`函数接受一个指向字符数组的指针,通过遍历字符串中的每个字符,判断是否为大写字母,如果是,则将其转换为小写字母。转换是通过将大写字母的ASCII码加上32实现的。
在`main`函数中,首先读取一个字符串作为输入,然后调用`toLower`函数对该字符串进行转换,最后输出转换后的结果。
请注意,这段代码使用了不推荐使用的`gets`函数来读取字符串。为了安全起见,建议使用`fgets`函数来替代`gets`函数,以避免缓冲区溢出问题。
阅读全文