对称串c语言,对称数c语言

发布时间:2022-11-24

本文目录一览:

1、C语言对称字符串 2、C语言,怎样判断一个字符串是否对称 3、[编写一个算法利用顺序栈判断一个字符串是否是对称串 c语言](#编写一个算法利用顺序栈判断一个字符串是否是对称串 c语言) 4、用c语言从键盘输入一个字符串,判断字符串是否对称,若对称返回1,否则返回0

C语言对称字符串

指针s指向的是一个二维数组,这里s[n]相当于一个指向字符串的指针,它的值是字符串在内存中的地址,所以f(s[n]=='\0') break错了。*s[n]指向由s[n][0]到s[n][80]字符组成的字符串

C语言,怎样判断一个字符串是否对称

#include stdio.h
#include string.h
void main(){
    int i,n,k=1;
    char str[1000];
    gets(str);
    n=strlen(str);
    for(i=0; i<=n/2; i++)
        if(str[i] != str[n-i-1]) {k=0; break;}
    k ? printf("对称") : printf("不对称");
}

编写一个算法利用顺序栈判断一个字符串是否是对称串 c语言

#include stdio.h
#include malloc.h
#include "string.h"
#define stack_init_size 100
#define stackincrement 10
#define overflow 0
#define ok 1
#define error 0
typedef struct {
    char *base;
    char *top;
    int stacksize;
} sqstack;
int initstack(sqstack sq) { /*初始化堆栈*/
    sq.base = (char *)malloc(stack_init_size * sizeof(char));
    if(!sq.base) return overflow;
    sq.top = sq.base;
    sq.stacksize = stack_init_size;
    return ok;
}
int push(sqstack sq, char e) { /*压栈*/
    if(sq.top - sq.base >= sq.stacksize) {
        sq.base = (char *)realloc(sq.base, (sq.stacksize + stackincrement) * sizeof(char));
        sq.top = sq.base + sq.stacksize;
        sq.stacksize += stackincrement;
    }
    *sq.top++ = e;
}
int pop(sqstack sq, char e) { /*出栈*/
    if(sq.top == sq.base) return error;
    e = *--sq.top;
    return ok;
}
int main() { /*主程序 压入1到100,然后再弹出*/
    int i, length;
    char e;
    int a[100];
    char str[20] = "abcdefedcba";
    length = strlen(str);
    sqstack sq;
    initstack(sq);
    for(i = 0; i < length; i++) {
        push(sq, str[i]);
    }
    for(i = 0; i < length; i++) {
        pop(sq, e);
        if(e != str[i]) {
            printf("ERROR\n");
            return 0;
        }
    }
    printf("CORRECTLY!");
    return 1;
}

用c语言从键盘输入一个字符串,判断字符串是否对称,若对称返回1,否则返回0

#include <stdio.h>
#include <string.h>
char fun(char str[20], char ch[20]) {
    int i, j = 0;
    for(i = 0; str[i] != '\0' && ch[i] != '\0'; i++)
        if(str[i] == ch[i]) j++; // 我想让字符串1与字符串2作比较,然后相同时j就+1,这里貌似j从来不加.返回值永远都是0
    if(j == 1) return 1;
    if(j < 1) return 0;
}
int main() {
    char str[20], ch[20];
    printf("enter string: ");
    scanf("%s", str);
    printf("enter you want delete letter: ");
    scanf("%s", ch);
    char s = fun(str, ch);
    printf("%d", s);
    return 0;
}