精华内容
下载资源
问答
  • C语言函数——判断回文字符

    千次阅读 2019-04-29 17:55:54
    1-2 判断回文字符串 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: >bool palindrome( char *s );...

    判断回文字符串

    本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

    函数接口定义:

    bool palindrome( char *s );
    

    函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。

    裁判测试程序样例:

    #include <stdio.h>
    #include <string.h>
    #define MAXN 20
    typedef enum {false, true} bool;
    bool palindrome( char s );
    int main()
    {
    char s[MAXN];
    scanf("%s", s);
    if ( palindrome(s)==true )
    printf(“Yes\n”);
    else
    printf(“No\n”);
    printf("%s\n", s);
    return 0;
    }
    /
    你的代码将被嵌在这里 */

    输入样例1:

    thisistrueurtsisiht

    输出样例1:

    Yes
    thisistrueurtsisiht

    输入样例2:

    thisisnottrue

    输出样例2:

    No
    thisisnottrue

    bool palindrome( char *s )
    {
        int i=0,j=strlen(s)-1;
        while(i<j){
            if(s[i]!=s[j]) return 0;
            i++;
            j--;
        }
        return 1;
    
    }
    
    展开全文
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符...

    本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

    函数接口定义:

    bool palindrome( char *s );
    

    函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。

    裁判测试程序样例:

    #include <stdio.h>
    #include <string.h>
    
    #define MAXN 20
    typedef enum {false, true} bool;
    
    bool palindrome( char *s );
    
    int main()
    {
        char s[MAXN];
    
        scanf("%s", s);
        if ( palindrome(s)==true )
            printf("Yes\n");
        else
            printf("No\n");
        printf("%s\n", s);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例1:

    thisistrueurtsisiht
    

    输出样例1:

    Yes
    thisistrueurtsisiht
    

    输入样例2:

    thisisnottrue
    

    输出样例2:

    No
    thisisnottrue
    
    bool palindrome( char *s )
    {
        int result=1;//先假设其是回文
        char new[MAXN];//存倒序的字符串
        int i;
        
        /*先数一下该字符串的字数*/
        for(i=0;i<MAXN-1;i++)
        {
         if(s[i]=='\0')//当到该字符串的结尾时退出
             break;
        }
        i--;
        /*把字符串倒过来存入新数组*/
        int j=0;    
        for(;i>=0;i--)
         new[j++]=s[i];
        
        /*逐字比较*/
        for(int k=0;k<j;k++)
        {
            if(new[k]!=s[k])
            {
               result=0;
                break;
            }
        }
        
        if(result!=0)
        return true;
        else
        return false;
        
    }
    

    额。。这个与上一题挺像的,两个数组,逐步比较,没有很难嘿!

    展开全文
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串...

    本题来源于浙大PTA题库
    这是一道简单的字符串处理题


    本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

    函数接口定义:

    bool palindrome( char *s );
    

    函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。

    裁判测试程序样例:

    #include <stdio.h>
    #include <string.h>
    
    #define MAXN 20
    typedef enum {false, true} bool;
    
    bool palindrome( char *s );
    
    int main()
    {
        char s[MAXN];
    
        scanf("%s", s);
        if ( palindrome(s)==true )
            printf("Yes\n");
        else
            printf("No\n");
        printf("%s\n", s);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    
    输入样例1:
    thisistrueurtsisiht
    输出样例1:
    Yes
    thisistrueurtsisiht
    输入样例2:
    thisisnottrue
    输出样例2:
    No
    thisisnottrue
    

    解答:
    完成题目时,我们想用较少的变量,较少的循环来实现

    bool palindrome( char *s )
    {
        int n=strlen(s),i;
        for(i=1;i<=n/2;i++)    /*循环偶数个字符的一半,基数个字符的一半减一*/
        {
    		if(s[i-1]!=s[n-i]) return false;     /*当与(对面的数不相等)返回错误*/
        }
        return true;     /*循环结束全部相等,返回正确*/
    }
    
    展开全文
  • C语言-判断回文字符串【函数+指针】(一)

    万次阅读 多人点赞 2018-12-15 23:15:53
    6-1判断回文字符串(20 分) 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s )...

    例题一:

    6-1 判断回文字符串 (20 分)

    本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

    函数接口定义:

    bool palindrome( char *s );
    

    函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false

    裁判测试程序样例:

    #include <stdio.h>
    #include <string.h>
    
    #define MAXN 20
    typedef enum {false, true} bool;
    
    bool palindrome( char *s );
    
    int main()
    {
        char s[MAXN];
    
        scanf("%s", s);
        if ( palindrome(s)==true )
            printf("Yes\n");
        else
            printf("No\n");
        printf("%s\n", s);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    输入样例1:

    thisistrueurtsisiht
    

    输出样例1:

    Yes
    thisistrueurtsisiht
    

    输入样例2:

    thisisnottrue
    

    输出样例2:

    No
    thisisnottrue

    这道题给的裁判测试样例是使用C语言的指针写的,所以,在函数中,我们依然还是使用指针操作比较简单,我先把源码放在下面我们再来分析:

    bool palindrome(char *s){   //定义返回值为布尔类型的函数
    	char *a = s;		//定义一个新指针指向s
    	int i = 0,j=0,k=0;
    	while (*a != '\0'){     	//使用指针a最字符串进行遍历,统计字符串位数
    		a++;
    		i++;
    	}
    	a--;                     //因为最后一位为'\0'所以减一位
    	while (*s != '\0'){       //进行两个比较
    		if (*s == *a){
    			k++;
    		}
    		else{ 
    			return false;//在遍历过程中有对应不相等的项,直接返回false
    		}
    		s++;//指针s正向遍历与a进行比较
    		a--;//指针a反向遍历与s进行比较
    	}
    	if (k == i){           //如果k与i相等则说明在遍历过程中字符串正向与反向对应相等,返回true
    		return true;
    	}
    }

    现在来讲思路:回文字符串的意思就是字符串首尾对应相等,那么我们在处理该问题的过程中就要存在一个正向与反向的问题,所以说在程序中,我们重新定义一个指针a指向s,重新定义一个指针的目的就是为了做比较来使用,因为指针不像数组那样可以直接逆向进行操作,现在有了一个新指针,其实在新定义的指针a与指针s完全相等,但是执行统计字符之后,指针a指向的是字符串的最后一个字符。首先在函数里面,先对字符串进行字符个数统计,统计结束之后,保存统计数据,后面会用到。然后就是两个字符串的双向比较了,在比较过程中一旦发现不相等的情况直接返回false,表是该字符串不是回文串,在没有发现此类情况的时候,一直进行这比较,并且两个指针指向的字符始终进行着是否等价的比较,直至指针s指向了字符串的结束符。最后再加一个判断,就是k和i是否相等,为什么k和i相等了,就说明字符串是回文串了呢,因为在程序中呢,k始终是记录着s与a是否相等的,而i呢又是遍历字符串之后整个字符串的长度,所以说,只要判断了k和i是否相等,就能判断该字符串是否为回文字符串。

    展开全文
  • 回文判断问题描述算法思想函数模块测试数据C语言程序头文件Stack.hStack.hStack.hLqueue.hLqueue.hLqueue.h主文件实验结果问题描述\quad回文是指一个字符序列以中间字符为基准两边字符完全相同。要求程序从键盘输入...
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串...
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome...
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串...
  • 6-5 判断回文字符串 (20分) 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); ...
  • 本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。 函数接口定义: bool palindrome( char *s ); 函数palindrome判断输入字符串...
  • 编写一个可以判断回文字符串的函数 要求***利用一个函数来判断一串字符是否回文*** 思想:设置两个工作指针p1,p2分别指向字符串首尾,进行字符逐一比较,若有一个字符不相等,标记置为1,标记若为0,则为回文字符串 ...
  • #include <stdio.h> #include <string.h> #define MAXN 20 typedef enum { false, true } bool; bool palindrome(char *s); int main() { char s[MAXN]; scanf("%s", s);... if (pali...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

判断回文字符c语言程序

c语言 订阅