C语言高手进

编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实现输入字符串反向

#include<stdio.h>

void fun(char *X)
{
int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}
void main()
{
char tmp[50];
scanf("%s",&tmp);
fun(tmp);
printf("%s\n",tmp);
}
///////////////////////////////////////////////////////////////////再试试这个
//指针在同一个程序里是唯一的,不论是对形参的操作还是对实参的操作都是对同一内存单元的操作,怎么会有错

#include<iostream.h>
void fun(char *X)
{

int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}

void main()
{
char tmp[50];
cin.getline(tmp,50);
fun(tmp);
cout<<tmp<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-31
楼上写的是错的。fun()里面是参数是指针,后面他给的参数是数组。要这样改
#include<iostream.h>
void fun(char *X)
{

int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}

void main()
{
char tmp[50];
cin.getline(tmp,50);
fun(&tmp);
cout<<tmp<<endl;
}
相似回答
大家正在搜