C語言中字符串實現逆序實例詳解
字符串逆序和正序的實現代碼:
#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <malloc.h>#include <string.h>/*定義*/typedef struct node{ char c; struct node *llink,*rlink;}stud;/*建立鏈表*/stud * creat(void){ stud *p,*h,*s; char a; if((h=(stud *)malloc(sizeof(stud)))==NULL) { printf("不能分配內存空間!"); exit(0); } h->c = 0; h->llink=NULL; h->rlink=NULL; p=h; while(1) {a = getchar();if(a=='/n')break; if((s= (stud *) malloc(sizeof(stud)))==NULL) { printf("不能分配內存空間!"); exit(0); } p->rlink=s; s->c =a; s->llink=p; s->rlink=NULL; p=s; } h->llink=s; p->rlink=h; return(h);}/*正序*/void print1(stud *h){ stud *p; p=h->rlink; printf("字符串(正序):"); while(p!=h) { printf("%c",p->c); p=p->rlink; } printf("/n");}/*逆序*/void print2(stud *h){ stud *p; p=h->llink; printf("字符串(逆序):"); while(p!=h) { printf("%c",p->c); p=p->llink; } printf("/n");}/*釋放*/void free_stud(stud *h){ stud *p,*q; p=h->llink; while(p!=h) { q=p; p=p->llink; free(q); } free(h);}/*主函數*/int main(){ stud *head=NULL; head=creat(); print1(head); print2(head); free_stud(head); return 0;}
實現效果圖:
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答
圖片精選