请解释include<stdio.h> f(char s[ ]) { int i,j; i=0;j=0; while( s[j]!= '\0') j++; return (j-i); } void main() {printf("%d\n",f("ABCDEF"));}
时间: 2024-04-26 08:22:54 浏览: 108
这段代码包含了头文件<stdio.h>,其中定义了函数f和主函数main。函数f的输入参数是一个字符数组s,返回一个整型值。该函数的功能是计算字符数组s的长度,即从第一个字符开始计算,直到遇到字符串结束符'\0'为止。在函数中,定义了两个整型变量i和j,分别表示字符数组s的起始和结束位置。通过循环遍历字符数组s,直到找到字符串结束符'\0',即可得到字符数组s的长度。主函数main中调用函数f,并将计算得到的字符数组s的长度打印输出。因此,该程序的输出结果为6。
相关问题
#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; }哪里错了
你的代码中似乎漏掉了一个左括号,应该是在 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;
}
```
这样就可以判断一个字符串是否为回文了。
请使用while函数将fun函数的内容补充完整,编写出一个C语言程序,对字符串,除首、尾字符外,将其字符按ASCII编码数值降序排列的操作:#include<stdio.h> #include<ctype.h> #include<string.h> #include<conio.h> void wwjt(); void fun(char *a,int len) { int i,j; char t; } main(){ char s[100]; int l; printf("输入字符串:"); gets(s); l=strlen(s); fun(s,l); printf("\n%s\n",s); wwjt(); }
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<conio.h>
void wwjt();
void fun(char *a, int len) {
int i, j;
char t;
i = 1;
j = len - 2; //除去首尾字符后的最后一个字符的下标
while (i < j) {
while (i < j && a[i] > a[j]) {
t = a[i];
a[i] = a[j];
a[j] = t;
i++;
j--;
}
i++;
j--;
}
}
int main() {
char s[100];
int l;
printf("输入字符串:");
gets(s);
l = strlen(s);
fun(s, l);
printf("\n%s\n", s);
wwjt();
return 0;
}
void wwjt() {
printf("我爱计算机网络课程设计!\n");
}
阅读全文