用C++的方法写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串

是用C++的方法,不是C语言的啊,拜托各位了,我真的不会啊,极其感谢!极其感谢!

#include <string.h>
#include <iostream.h>
/*
将字符串倒置
输入为字符串str;
返回字符串的地址
*/
char* reverse(char *str)
{
char tmp;
int i,n;

if (str == NULL)
{
return 0;
}

n=strlen(str)-1;
for(i=0;i<n;i++,n--)
{
tmp = str[i];
str[i] = str[n];
str[n] = tmp;
}
return str;
}
void main()
{
char str[255];
cin>>str;
reverse(str);
cout<<str<<endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-06-13
#include <string.h>
#include <stdio.h>
/*
将字符串倒置覆盖原输入字符串str;
返回该字符串的地址 */
char* reverse(char *str)
{
char tmp;
char *head,*tail;
head=str;
tail=str+strlen(str)-1;
for (;tail>head;tail--,head++)
{ tmp=*head; *head=*tail; *tail=tmp; }
return str;
}
void main()
{
char str[255];
scanf("%s",str);
reverse(str);
printf("%s\n",str);
}
第2个回答  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循环逐个输出
}

以上==不过我也不是什么高手,程序要是有问题的话欢迎交流~大家一起进步~

用C++的方法写一函数,使输入的一个字符串按反序存放,在主函数中输入和...
include <string.h> include <iostream.h> \/ 将字符串倒置 输入为字符串str;返回字符串的地址 \/ char* reverse(char *str){ char tmp;int i,n;if (str == NULL){ return 0;} n=strlen(str)-1;for(i=0;i<n;i++,n--){ tmp = str[i];str[i] = str[n];str[n] = tmp;}...

...一个字符串反序存放,在主函数中输入和输出字符串
include<stdio.h>#include<string.h>void fun(char *a) \/\/其实你的n没有用。可以去掉{ int i,j; char t; \/\/字符 j=strlen(a); for(i=0;i<j\/2;i++)\/\/一半就行{t=a[i];a[i]=a[j-i-1];a[j-i-1]=t; \/\/这里需要{}; }\/\/是从j-1开始; \/\/ return a[...

...在主函数中输入和输出字符串。用C语言解答,尽量好懂一点。
include<string.h> main (){ char c[81],a;int i,n;gets(c);n=strlen(c);\/\/测字符长度 for(i=0;i<n\/2;i++){a=c[i];c[i]=c[n-i-1];c[n-i-1]=a;}\/\/第一个与最后一个字符交换...puts(c); \/\/ 二 倒第二个 交换...return 0;} 调过了,绝对没问题,...

C语言: 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字...
第一,你在调用char yuan(char a)后,用什么来接受它的返回值?对吧,在主函数中根本没有任何char组来接受它。你似乎可以将 gets(a);后的语句改写成 a = yuan( a ); 然后输出。告诉你这也样行不同的,只因为接下来的第二点。第二,你的yuan函数设计有问题。你犯了一个初学者很容...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
你的printit 函数 接受两个参数 一个是字符串 一个是字符串的长度int main(){ char str[80]=""; gets(str); \/\/输入字符串printit(str,strlen(str));\/\/ 调用函数 str 是你输入的字符串 strlen(str)是获取str字符串的长度printf("\\n");\/\/输出修改后的字符串return 0;}\/\/然后\/\/printit函数 作用是...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
strcpy(string ,string )---把后1个复制后放入前一个字符串,空间要够 strcat(string ,string ) ---把后1个剪切后放入前一个字符串,空间要够 strcmp(string ,string )---比较2个字符串,0为相同,>0前1个大,<0后1个大 strlen(string )---字符串长度 ...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
include <stdio.h>#include <stdlib.h>#define N 10void fanzhuan(char* a);int main() {int i;char a[N]={'\\0'};printf("请输入字符串:");scanf("%s",a);fanzhuan(a);return 0;}void fanzhuan(char* a){int i;for(i=strlen(a)-1;i>=0;i--){printf("%c",a[i]);}...

...个字符串按逆序存放。在主函数中输入和输出字符串。
include <stdio.h>#include <string.h>\/\/ 反序字符串x并返回char* reverse(char *x){ int len = strlen(x); int i, n = len \/ 2; char tem; for (i = 0; i <= n; i++) { tem = x[i]; x[i] = x[len - 1 - i]; x[len - 1 - i] =...

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
{ char s[20];input(s);\/\/调用输入函数 printf("Original string: %s\\n", s);\/\/输出原字符串 reverse(s);\/\/调用反序函数 printf("New string: %s\\n", s);\/\/输出反序后的字符串 return 0;} void input(char st[]){ printf("Please enter string: ");gets(st);} \/\/反序函数 v...

编写一函数,使输入的一个字符串反序存放,并在主函数中输入、输出字符串...
include <conio.h> typedef struct LNode{ char data;struct LNode * next;}LNode, * LinkList;LinkList CreateList_L(LinkList L)\/*头插法建立链表*\/ { char c;LinkList p;L = (LinkList)malloc(sizeof(LNode));L->next = NULL;c=getchar();while(c!='\\n'){ p = (LinkList)...

相似回答