编写一个函数tolower,它将字符串中的大写字母改写成小写字母,并返回总共改写的字符个数。字符串由参数传递而来
时间: 2023-03-07 16:31:52 浏览: 119
答:可以使用如下函数来完成:
```
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;}
在c语言中,已知s1是最多包含50个字符的字符串数组,p是指向s1的指针。用gets函数输入字符串给s1。要求用指针p书写程序,将s1中大写字母改写成小写字母,小写字母改写成大写字母,其他字符不变,这部分代码不能出现s1变量。最后使用puts输出修改后的s1
好的,针对您的问题,我来给您提供一个示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char s1[51];
char *p = s1;
gets(s1);
while (*p != '\0') {
if (isupper(*p)) {
*p = tolower(*p);
} else if (islower(*p)) {
*p = toupper(*p);
}
p++;
}
puts(s1);
return 0;
}
```
这段代码使用了指针p作为数组s1的指针,遍历了整个字符串s1,对于每个字符进行了大小写转换的处理,并最后输出了修改后的字符串。
需要注意的是,由于gets函数的不安全性,这里的示例代码仅适用于练习。在实际应用中,应该使用更安全的输入函数,例如fgets。
阅读全文