写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

刚学编程,请不要写的太难看懂程,请不要写的太难看懂
c++

第1个回答  2012-04-26
...您这是用什么语言啊?C++的应该是这样的吧:(现写的,可能会有一点问题,但大体是这样的)
int main()
{
char str[40]; //假设40是存放的字符串最大值
char str2[40];
cin>>str; //连续输入字符串,以空格,回车结束
//字符串存储是以‘\0’结束
int i=0; //循环起点
while(str[i]!='\0') //判断是否是结束符,不是的情况下循环,是的情况下退出循环,i值就是字符串长度,也可以直接在括号中写sri[i]进行判断是否非空值
{
i++;
}
int length=i;
int j=0;
for(i=i-1;i=0;i--) //判断条件是i为0,循环条件是i--
{
str2[j]=str[i];
j++; //逆序拷贝
}
str2[j]='\0'; //结束符
cout<<str2; //输出,不过有些地方好像不支持直接输出,也可以用for循环逐个输出
}

以上==不过我也不是什么高手,程序要是有问题的话欢迎交流~大家一起进步~本回答被提问者和网友采纳
第2个回答  2012-04-27
#include <stdio.h>
#include<string.h>
void app(char *str);
void main()
{
char str[100];
scanf("%s",str);
app(str);
printf("\n");
}
void app(char *str)
{
if(*str=='\0')
{
return ;
}
else
{
str++;
app(str);
str--;
printf("%c",*str);
}
}
希望采纳!!!
第3个回答  2012-05-04
#include<iostream>
#include<cassert>
using namespace std;
void Print(char *p)
{
if(NULL == p)return;
int n=strlen(p);
for(int i=0;i<n;++i)
cout<<p[i]<<" ";
cout<<endl;
}
void Swap(char &s,char &d)
{
char temp=s;
s=d;
d=temp;
}
char *fun(char *p)
{
if(NULL == p)return NULL;
int n=strlen(p);
int i=0,j=n-1;
while(i<j)
{
Swap(p[i],p[j]);
++i;
--j;
}
return p;
}
int main()
{
int n=0;
cout<<"please enter the nomber of your string!"<<endl;
cin>>n;
char *p=new char[n];
assert(p != NULL);
cout<<"please enter the your string!"<<endl;
cin>>p;
Print(p);
char *q=fun(p);
Print(q);
return 0;
}

好运!
相似回答