#include <stdio.h> #include <string.h> char *fun(char tt[]) { int i; for (i=0; tt[i]; i++) /********found********/ if ((tt[i] >= 'a') || (tt[i]<='z')) /********found********/ tt[i] += 32; return (tt); } void main() { char tt[81]; gets(tt); printf("\n%s", fun(tt)); }
时间: 2023-07-18 18:41:22 浏览: 75
这段代码的功能是将输入的字符串中所有的大写字母转换成小写字母,并返回修改后的字符串。但是代码中存在两处错误:
1. 逻辑运算符应该是 `&&` 而不是 `||`,因为 `||` 表示或者的关系,应该是大于等于 'a' 且小于等于 'z' 才需要执行 `tt[i] += 32` 的操作。
2. 函数 fun 的返回值类型应该是 char*,即返回一个指向字符数组的指针。
下面是修改后的代码:
```c
#include <stdio.h>
#include <string.h>
char* fun(char tt[]) {
int i;
for (i = 0; tt[i]; i++)
if ((tt[i] >= 'A') && (tt[i] <= 'Z'))
tt[i] += 32;
return tt;
}
void main() {
char tt[81];
gets(tt);
printf("\n%s", fun(tt));
}
```