运行结果是错误的,为什么?用的是vc6.0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char*s,char*t)
{
int i,s1;
s1=strlen(s);
for(i=0;i<=s1;i++)
t=s;
for(i=0;i<s1;i++)
t=s;
t='\0';
}
int main()
{
char s,t;
printf("\nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s\n",t);
return 0;
} 所以你想要什么输出结果呢? 本帖最后由 chxchxkkk 于 2020-6-30 11:10 编辑
这个程序想实现什么?
for(i=0;i<=s1;i++) -》 这个循环要起什么作用呢?
t=s;
直接 t = s 就可以 或者 t = s
t='\0'; 这一句决定了 t = s了,下面的循环不起作用
for(i=0;i<s1;i++)
t=s;
如果要实现的下面的效果 比如:
s = abcde
t = abcdeedcba
那么,代码应该如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char*s,char*t)
{
int i,s1;
s1=strlen(s);
for(i=0;i<=s1;i++)
t = s;
for(i=0;i<s1;i++)
t=s;
t='\0';
}
int main()
{
char s,t;
printf("\nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s\n",t);
return 0;
}
如果想实现字符串逆置则应该如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char*s,char*t)
{
int i,s1;
s1=strlen(s);
// for(i=0;i<=s1;i++)
// t = s;
for(i=0;i<s1;i++)
t=s;
t='\0';
}
int main()
{
char s,t;
printf("\nPlease enter string s:");
scanf("%s",s);
fun(s,t);
printf("The result is:%s\n",t);
return 0;
}
这不是改错那个吗?怎么,昨天改得不对?{:10_277:} chxchxkkk 发表于 2020-6-30 11:07
这个程序想实现什么?
for(i=0;i
谢谢 405794672 发表于 2020-6-30 11:36
这不是改错那个吗?怎么,昨天改得不对?
输出结果是错的
页:
[1]