include<conio.h>#include<stdio.h>#include<string.h> void fun(char *s,char *t) int i,sl sl=strlen(s) / **********FOUND********** for(i=0:i《sl:i++) t[i]=s[i]:/ for(i=0:i《sl;i++) /**********FOU]ID******率* t[sl+i]=s[sl-i] /**********FOUID**********/ t [sl*2]='\0': Evoid main() char s[100],t[100] printf("\nPlease enter string s:");ecanf("%s",s) fuan(z,t): printf ("The result is:%s\n",t):忽略语法错误,它有那些逻辑错误
时间: 2023-08-17 15:04:53 浏览: 170
这段代码存在逻辑错误:
1. 函数定义时缺少左括号,应该为 `void fun(char *s,char *t)`。
2. 函数内部的注释符号 `/**********FOUND**********/` 和 `/**********FOUID**********/` 是错误的,应该为 `/*FOUND*/` 和 `/*FOUID*/`。
3. 函数内部的 for 循环语句中,第一个分号应该为冒号,应该为 `for(i=0;i<sl;i++)`。
4. 函数内部的第二个 for 循环语句中,第一个分号也应该为冒号,应该为 `for(i=0;i<sl;i++)`。
5. 函数内部的最后一行代码中,应该为 `t[sl*2]='\0';`,缺少分号。
6. 主函数中调用 `fun()` 函数时,函数名拼写错误,应该为 `fun(s,t)`。
7. 主函数中输出结果时,字符串格式化符号应该为 `%s`,应该为 `printf("The result is:%s\n",t);`。
8. 主函数中缺少头文件 `stdlib.h`。
9. 主函数中缺少返回值,应该为 `return 0;`。
相关问题
完成以下C语言代码功能:将主函数中输入的字符串反序存放。#include<stdio. h> #include<conio. h> #include(string. h> #define N 50 void fun(char *str, int n)
我可以提供一个示例代码:#include <stdio.h>
#include <string.h>int main ()
{
char str[100], temp;
int i, j; printf("输入一个字符串: ");
gets(str); j = strlen(str) - 1; for (i = 0; i < j; i++, j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
} printf("反序后的字符串: %s", str); return 0;
}
功能:将 s 所指字符串的反序和正序进行连接形成一个新串放在例如:当 s 所指的字符串的内容为" ABCD "时, t 所指数组中 t 所指的数组中。的内容为" DCBaabCD # include < conio . h > # include < stdio . h > # include < string . h > void fun ( char
*s, char *t )
{
if (s == NULL || t == NULL) {
return;
}
int len = strlen(s);
int i, j;
// 将 s 反序存放到 t 后面
for (i = len - 1, j = 0; i >= 0; i--, j++) {
t[len + j] = s[i];
}
// 将 s 正序存放到 t 后面
for (i = 0; i < len; i++, j++) {
t[len + j] = s[i];
}
// 添加字符串结尾符
t[len * 2] = '\0';
}
这个函数会先将字符串 s 反序存放到 t 的后面,再将 s 正序存放到 t 的后面,最终将新的字符串以字符串结尾符'\0'结束,这样就能实现将 s 反序和正序进行连接的功能。
阅读全文