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):忽略语法错误,它有那些逻辑错误
这段代码存在逻辑错误:
函数定义时缺少左括号,应该为
void fun(char *s,char *t)
。函数内部的注释符号
/**********FOUND**********/
和/**********FOUID**********/
是错误的,应该为/*FOUND*/
和/*FOUID*/
。函数内部的 for 循环语句中,第一个分号应该为冒号,应该为
for(i=0;i<sl;i++)
。函数内部的第二个 for 循环语句中,第一个分号也应该为冒号,应该为
for(i=0;i<sl;i++)
。函数内部的最后一行代码中,应该为
t[sl*2]='\0';
,缺少分号。主函数中调用
fun()
函数时,函数名拼写错误,应该为fun(s,t)
。主函数中输出结果时,字符串格式化符号应该为
%s
,应该为printf("The result is:%s\n",t);
。主函数中缺少头文件
stdlib.h
。主函数中缺少返回值,应该为
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 反序和正序进行连接的功能。
相关推荐














