C++,编写一个函数,利用指针实现将一个字符串反向输出。

请问下面的程序问题出在哪,请在原程序的基础上修改。
#include <iostream>
#include <string>
using namespace std;
char FZ(char *a){
int i;
for(i=strlen(a);i>0;i--)
cout<<*(a+i);
//return 0;
}
void main(){
char b[80];
char *a=b;
int i;
cout<<"请输入一个字符串:\n";
for(i=0;i<80;i++)
cin>>b[i];
cout<<"它的反置是:"<<FZ(*a)<<endl;
}

错误信息:C:\Windows\System32\dwj.cpp(17) : error C2664: 'FZ' : cannot convert parameter 1 from 'char' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.

错误较多,修改如下,可以续问:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include <iostream>
using namespace std;
char *FZ(char *a){
    int i,j,t;
    for(j=0,i=strlen(a)-1;j<i;i--,j++)
        t=a[i],a[i]=a[j],a[j]=t;
    return a;
}
int main(int argc,char *argv[]){
    char b[80];
    char *a=b;
    int i;
    cout << "请输入一个字符串:\n";
    scanf("%80s",b);
    cout << "它的反置是:" << FZ(a) << endl;
    return 0;
}

追问

stdafx这个报错,好像是没有这个头文件

其实我主要是想问C++中指针的赋值和输出

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-03-27
#include <iostream>
using namespace std;

void main()
{
char b[]={"ilove123"};
int len = sizeof(b)/sizeof(char);

char *a=NULL;
a=b;
for (int i=0; i<len;i++)
{
cout<<a[i];
}
cout<<endl;

for (int i=len-2; i>=0;i--)
{
cout<<a[i];
}
cout<<endl;

}
相似回答