#include<stdio.h> #include<string.h> int f(char *s) int main() { char a[100]; gets(a); if(f(a)) printf("是回文!"); return 0; } int f(char *s) { int i=0; int j=strlen(s)-1; while(i<j) { if(s[i]!=s[j]) return 0; i++; j--; } return 1; }哪里错了
时间: 2024-01-18 08:04:35 浏览: 26
你的代码中似乎漏掉了一个左括号,应该是在 f 函数的定义中,把 `int f(char *s) ` 改为 `int f(char *s) {`。同时,使用 `gets` 函数会存在安全隐患,可以使用 `fgets` 函数代替。修改后的代码如下:
```c
#include<stdio.h>
#include<string.h>
int f(char *s) {
int i=0;
int j=strlen(s)-1;
while(i<j) {
if(s[i]!=s[j])
return 0;
i++;
j--;
}
return 1;
}
int main() {
char a[100];
fgets(a, 100, stdin);
if(f(a))
printf("是回文!");
return 0;
}
```
这样就可以判断一个字符串是否为回文了。
相关问题
#include <stdio.h> #include <string.h> int main() { char s[100]; gets(s);
这段代码是一个简单的C语言程序,包含了两个头文件<stdio.h>和<string.h>。其中<stdio.h>是C语言标准库中的头文件,提供了输入输出函数的声明和定义,例如printf和scanf等。而<string.h>是C语言标准库中的头文件,提供了字符串处理函数的声明和定义,例如strcpy和strlen等。
在主函数main中,定义了一个字符数组s,长度为100。然后使用gets函数从标准输入中读取一行字符串,并将其存储到数组s中。
需要注意的是,gets函数存在安全性问题,不推荐使用。可以使用fgets函数代替,它可以指定读取的最大字符数,避免缓冲区溢出。
#include <stdio.h> #include <string.h>
这是C语言中的头文件,其中stdio.h是标准输入输出头文件,提供了一些常用的输入输出函数,例如printf和scanf。而string.h则是字符串头文件,提供了一些常用的字符串处理函数,例如strcpy和strcat。
如果你想要使用这些函数,需要在程序中包含这两个头文件,例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[10] = "hello";
char str2[10] = "world";
strcat(str1, str2);
printf("%s\n", str1); // 输出:helloworld
return 0;
}
```