| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5682 人关注过本帖
标题:【指针作为函数参数、指针访问字符数组元素】编写函数判断用户输入的一个字 ...
只看楼主 加入收藏
feiyuanyong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-24
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:3 
【指针作为函数参数、指针访问字符数组元素】编写函数判断用户输入的一个字母字符串是否是回文(正读反读一样)
【指针作为函数参数、指针访问字符数组元素】编写函数判断用户输入的一
个字母字符串是否是回文(正读反读一样) ,不考虑空格、标点和数字。
例如:
abcddcba   输出:TRUE
a1bcd2dcba   输出:TRUE
abcddbda   输出:FALSE
主要是怎么跨过空格、标点和数字不会

[ 本帖最后由 feiyuanyong 于 2013-11-24 01:12 编辑 ]
搜索更多相关主题的帖子: 字母 元素 用户 字符串 
2013-11-24 01:08
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:10 
很简单,先把空格、标点和数字去掉不就OK了(或者说去掉后保存到另一个数组,保证不改变原数组,如果你需要的话)
比如你的字符数组为 a[],用 b[] 来接收处理过后的数组;   就可以这样写
    i=0;j=0;
    while(a[i]!='\0')
    {
        if(a[i]!=' ' && a[i]!="标点" && (a[i]<48 || a[i]>57))   //这里的标点根据你的要求更改
            b[j++]=a[i];
        i++;
    }



[ 本帖最后由 韶志 于 2013-11-25 11:11 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-11-24 01:41
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
用两个指针,一个指向头,一个指向尾,然后移动指针逐个比较

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-11-24 08:29
feiyuanyong
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-11-24
收藏
得分:0 
#include<stdio.h>
 #include<string.h>
 #define _CRT_SECURE_NO_WARNINGS
 #define N 10
 
//函数声明
 //数判断用户输入的一个字母字符串是否是回文
 int judge(char *string);
 

//主函数
 int main()
 {
     int res;
     char arry[N+1];
     printf("请输入一个不超过10个字符并包含英文字母的字符串:\n");
     gets(arry);
 
    res=judge(arry);//调用函数进行判断
 
    printf("这个字符串是不是回文:");
     if(res==1)
     {
         printf("TRUE");
     }
     else if(res==0)
     {
         printf("FAlSE");
     }
     printf("\n");
 
    return 0;
 }
 
//===================================================
 //函数名:judge
 //功能说明:数判断用户输入的一个字母字符串是否是回文
 //参数:string[]---输入的字符串
 //返回值:
 //===================================================
 
int judge(char *string)
 {
     int i,j=1,len;
     char *p,*q;
     p=q=string;
     len=strlen(string);
     while(*q!='\0')
     {
         q++;
     }
     for(i=0;i<len/2;i++)
     {
         if((*(p+i)>='A'&&*(p+i)<='Z')||(*(p+i)>='a'&&*(p+i)<='z'))
         {
             while(*(q-j)<'A'||((*(q-j)>'Z')&&*(q-j)<'a')||*(q-j)>'z')
             {
                 j++;
             }
             if(*(p+i)==*(q-j))
             {
                 j++;
                 continue;
             }
             else if(*(p+i)!=*(q-j))
             {
         
                 return 0;
             }
         }
         else
         {
             continue;
         }
     }
     return 1;
 }
2013-11-25 23:58
快速回复:【指针作为函数参数、指针访问字符数组元素】编写函数判断用户输入的一 ...
数据加载中...
 
   



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

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