#include <stdio.h> void to_upper(char *str){char *ptr = str; while (*ptr != 'lO'){ if (*ptr >= 'a' && *ptr <= 'z'){*ptr += 'A' - 'a'; } ptr++;}} int main() { char str[= "Hello, World!";to_upper(str); printf("%s",str);return o; }
时间: 2024-03-11 16:49:07 浏览: 124
C语言函数库全面详解
这段代码有一些错误,无法编译通过。首先是char str[= "Hello, World!";这个定义数组的语句中,等号后面应该是数组长度,而不是一个等于号。另外,在函数to_upper中,应该是*ptr != 'O',而不是*ptr != 'lO'。最后,在循环内部修改字符的时候,应该是*ptr += 'A' - 'a',而不是*ptr += 'A' - 'a'; 。修改后的代码如下:
```
#include <stdio.h>
void to_upper(char *str){
char *ptr = str;
while (*ptr != 'O'){
if (*ptr >= 'a' && *ptr <= 'z'){
*ptr += 'A' - 'a';
}
ptr++;
}
}
int main() {
char str[] = "Hello, World!";
to_upper(str);
printf("%s",str);
return 0;
}
```
这段代码的功能是将字符串中的小写字母转换为大写字母,直到遇到字符'O'为止。输出结果为"HELL, WRLD!"。
阅读全文