Online Compiler C

#include <stdio.h> void lower_string(char s[]) { for(int i = 0; s[i] != '.' && s[i] != '\0';i++) { int p = 0 if (s[i] >= 'A' && s[i] <= 'Z') { p = s[i]- 'A'; s[i]= p + 'a'; } } } int main() { char s[1000]= "AJdigrergig"; for(int i = 0; s[i] != '.' && s[i] != '\0';i++) { printf("%c", s[i]); } lower_string(s); for(int i = 0; s[i] != '.' && s[i] != '\0';i++) { printf("%c", s[i]); } return 0; }
这段代码定义了一个函数 `lower_string`,目的是将字符串中的大写字母转换为小写字母。主函数中先打印原始字符串,然后调用转换函数,再打印转换后的结果。

代码中存在一个语法错误:在 `lower_string` 函数中,`int p = 0` 这一行末尾缺少了分号。这会导致编译失败。

- 检查 `lower_string` 函数中 `int p = 0` 这一行,确保每个语句都以分号结束。
- 注意循环条件中同时检查了 `s[i] != '.'` 和 `s[i] != '\0'`,这意味着遇到句点或字符串结束符都会停止。如果字符串中没有句点,这个条件也能正常工作,但需要确认这是否符合你的预期。