| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:关于回文
只看楼主 加入收藏
流年226
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2013-4-27
结帖率:71.43%
收藏
已结贴  问题点数:10 回复次数:3 
关于回文
#include<stdio.h>
#include<string.h>
#define n 50
void main()
{
    int i,j,num=0;
    char st1[n+1];
    char str[100][n+1];
    char *pst1,*pst2;
    printf ("输入字符串:");
    while(1)
    {
      if(scanf("%s",st1)=='end')
          break;
      strcpy (str[num],st1);
      num++;   
    }
    for(j=0;j<num;j++)
    { pst1=str[j];
    pst2=str[j];
    while(*pst1!='\0')
        pst1++;
    i=0;
    pst1--;
    while(*pst1==*pst2 )
    {
        pst1--;
        pst2++;
        i++;
        if(i==strlen(str[j]))
            break;
    }
    if(i==strlen(str[j]))
        printf("该字符串回文\n");
    else
        printf("该字符串不回文\n");
    }
}


哪位帮忙看看哪错了?是看多个字符串是否回文,以end为结束标志。
搜索更多相关主题的帖子: include 字符串 
2013-05-05 19:58
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:1 
编译没问题啊

Maybe
2013-05-05 21:54
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:9 
大概看了下,
if(scanf("%s",st1)=='end')不合适
scanf返回的是输入的变量数,单引号内必须是单个字符,字符串要用双引号。
字符串比较不能直接==,要用 strcmp 函数。
if(strcmp(st1,"end")==0)

while(1)会一直执行num++,str[num]会越界的。

获取字符串长度的
while(*pst1!='\0')
        pst1++;
可以用strlen函数代替。
尽量使用库函数,效率会高很多。
2013-05-05 22:37
流年226
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2013-4-27
收藏
得分:0 
好的,我再看看,谢谢
2013-05-06 15:40
快速回复:关于回文
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027102 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved