QQ网名大全

C++回文数问题

是因为strrev这个函数的问题,看他的定义char *strrev(char *str)因为你传递给他的是指针地址,所以其值要变化,这个问题应该是strrev这个函数的bug,而如果它的定义如果是char *strrev(const char *str)就没错了。不过这个要看这个库函数的内部实现机理,你只要知道重新给他赋个地址就ok拉,正常的程序如下
#include<iostream>
#include<string>
using namespace std;
void main()
{
char s1[30],s2[30],s3[30],s4[30];
cout<<"请输入一个小于20的英文句子:";
cin.getline(s1,20);
int i=0;
for(int j=0;j<strlen(s1);j++)
if(s1[j]>='A' && s1[j]<='Z' || s1[j]>='a' && s1[j]<='z')
{
s2[i]=s1[j];
i++;
}
s2[i]='\0';
for (i=0;i<strlen(s2);i++)
{
s4[i] = s2[i];
}
s4[i]='\0';
//-------------------------------
strcpy(s3,strrev(s4));
cout<<s3<<endl;

if(strcmp(s2,s3)==0)
cout<<"是回文数";
else
cout<<"不是回文数";
}
佚名
2024-05-29 11:17:59
最佳回答
类似问题(10)
  • 佚名
    2024-05-29 22:51:25

    c#命名规范问题

    如果是成员字段或者局部变量应该小写,整个是pCSessionID,如果是属性名则应该首字母大写。

  • 佚名
    2024-05-29 12:32:21

    C# 变量名用中文会出现什么问题?

    你现在没看到问题不代表以后也会没问题至少和楼上说的一样,很难切换,其实中文的在国人写的数据库程序中已经很常见了,因为数据库字段很多人都喜欢中文字段,而微软的li...

  • 佚名
    2024-05-29 13:49:33

    C语言函数基本问题

    int work(参数,参数) int work(int a,int b)//声明定义函数return //带有结束该语句,一般用于返回值。可以理解为结束该...

  • 佚名
    2024-05-29 13:49:09

    数学问题

    问题不通

  • 佚名
    2024-05-29 09:30:39

    PHP函数问题

    $_POST用来接收<form>中用post方法传送来的数据,不是明文发送来的;$_GET则是用来接收<form>中用Get方法传送来的数据,是附加...

  • 佚名
    2024-05-29 15:20:52

    php函数问题

    等于下面的,至于等于什么用法不好描述呵呵。function step_1(){ insheader();//调用函数 echo '//输出数据 ...

  • 佚名
    2024-05-29 04:40:03

    C语言问题,急切等待中

    scanf遇到空格就不读了。你得改用fgets、gets等读一行的函数。eg:fgets(a, Max, stdin);不过fets和gets都会读入\r和\n...

  • 佚名
    2024-05-29 08:00:00

    高分悬赏c或c++编程题,关于布尔函数的

    页面会自动刷新,这不是很好吗?我们已经习惯了。 30秒刷新,代码会自动刷新。订单,我们纪念确认,而不是警察。 您要使用的程序来实现这一功能,程序简单,或者说W...

  • 佚名
    2024-05-29 08:00:00
  • 佚名
    2024-05-29 08:00:00

    c# 静态类的多线程访问问题

    可以.只要静态类在线程的访问范围内都可以.另外静态方法内部如果有东西进行了跨线成操作.可能会报错