会C++来看一下!
来源:百度知道 编辑:UC知道 时间:2024/08/22 15:26:36
#include<iostream.h>
#include<string.h>
void main()
{
void inverse(char *);
do
{
char s[50];
char a;
cout<<"输入一个字符串:";
cin>>s;
cout<<"您输入的字符串:"<<s<<endl;
inverse(s);
cout<<"反序后的字符串:"<<s<<endl;
cout<<"你想继续还是退出?继续请按y,退出请按n!"<<endl;
cin>>a;
}while(a=='y');
}
void inverse(char *p)
{
int n=strlen(p);
int limit=n/2;
for(int i=0;i<limit;i++)
{
char t;
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}
哪里错了?
#include<string.h>
void main()
{
void inverse(char *);
do
{
char s[50];
char a;
cout<<"输入一个字符串:";
cin>>s;
cout<<"您输入的字符串:"<<s<<endl;
inverse(s);
cout<<"反序后的字符串:"<<s<<endl;
cout<<"你想继续还是退出?继续请按y,退出请按n!"<<endl;
cin>>a;
}while(a=='y');
}
void inverse(char *p)
{
int n=strlen(p);
int limit=n/2;
for(int i=0;i<limit;i++)
{
char t;
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}
哪里错了?
字符变量"a" 的作用范围在do...while循环之内,不能作用在while语句之中,适当调整就可以
#include<iostream.h>
#include<string.h>
void main() {
void inverse(char *);
char a;
do {
char s[50];
cout<<"输入一个字符串:";
cin>>s;
cout<<"您输入的字符串:"<<s<<endl;
inverse(s);
cout<<"反序后的字符串:"<<s<<endl;
cout<<"你想继续还是退出?继续请按y,退出请按n!"<<endl;
cin>>a;
}while(a=='y');
}
void inverse(char *p) {
int n=strlen(p);
int limit=n/2;
for(int i=0;i<limit;i++) {
char t;
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}
初学者要注意变量的生存范围啊。