C语言——输入一个字串,判断它是否是对称串。如”abcdcba”是对称串,”123456789”不是。

方式一

#include <stdio.h>
#include <string.h>
int main()
{    
    char str[100];    
    int i, len, flag = 0;    
    printf("请输入一个字符串:");
    scanf("%s", str);    
    len = strlen(str);    
    for(i = 0; i < len; i++) 
    {        
        if(str[i] != str[len-i-1]) 
        {            
            flag = 1;            
            break;        
        }    
    }       
        if(flag == 0) 
        {        
            printf("输入的字符串是对称字符串。\n");    
        } 
        else 
        {        
            printf("输入的字符串不是对称字符串。\n");    
        }    
        return 0;
}

 方式二

#include <stdio.h>
#include <string.h>

int symmetric(char *str) 
{
    int length = strlen(str);
    
    if (length <= 1) 
    {
        return 1;
    }
    
    char *start = str;
    char *end = str + length - 1;
    
    while (end > start) 
    {
        if (*start != *end) 
        {
            return 0;
        }
        start++;
        end--;
    }
    
    return 1;
}

int main() 
{
    char input[100];
    printf("请输入一个字符串:\n");
    scanf("%s", input);

    if (symmetric(input)) 
    {
        printf("输入的字符串是对称的。\n");
    } 
    else 
    {
        printf("输入的字符串不是对称的。\n");
    }

    return 0;
}

实现结果

 

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/134951651