有关c++ 反转字符的问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 05:24:46
#include<iostream>这是一个反转字符串的程序。
using namespace std;
void rollback(char *ch) //这里定义了一个*ch指针
{
int i=0;
char tmp=ch[i];//这里是什么意思?定义一个字符变量,变量等于*ch指针
指向的内容么?
int length=strlen(ch);//这里 是不是用strlen(ch)记录字符串的长度?
for(i=0;i<=length/2;i++)
{
tmp=ch[i];
ch[i]=ch[length-1-i];//这个ch〔length-1-i〕是什么具体意思?
比方说我输入的是 fengkele
ch[length-1-i]=tmp;
}
}
int main()

{
char ch[10];
cout<<"in:";
cin>>ch;
rollback(ch);
cout<<ch<<endl; //为什么这样输出会出现错误cout<<rollback(ch)<<endl?
return 0;
}
为什么这样输出会出现错误cout<<rollback(ch)<<endl?
我是 问这个,那个程序是我被下来的(面试问题)。
我 的 问题 ,可能出现歧异了

cout<<rollback(ch)<<endl? 因为rollback的返回值类型void,所以不能这样写

ch[i]=ch[length-1-i];//第i个字符与倒数第i个字符互换.
#include"iostream.h"
#include"stdio.h"
void main()
{char a[80],*p,t;int i,n;
cout<<"输入S"<<endl;
gets(a);
p=a;
for(n=0;*(p+n)!='\0';n++);
n=n-1;
for(i=0;i<=n/2;i++)
{t=*(p+i);*(p+i)=*(p+n-i);*(p+n-i)=t;}
cout<<"输出S"<<endl;
puts(a);
}

char ch[10]; 则ch为常量,
void rollback(char *ch),则ch为指针变量,不能cout<<ch<<endl;
两都矛盾;
ch〔length-1-i〕是指倒数第i个数,用来与第i个数交换