C语言实现串,和简单的主函数测试
来源:互联网 发布:数据新闻手册 pdf 编辑:程序博客网 时间:2024/04/29 12:55
#include<stdio.h>#include<stdlib.h>#define OK 1#define FALSE 0#define Status inttypedef struct{char *ch;int length;}HString;//构造一个串T和chars相同Status StrAssign (HString **T ,char *chars){int len,j;char *c;if((*T)->ch)free((*T)->ch);else{for(len = 0,c=chars; *c;c++,len++);if(!len)fprintf(stderr,"chars is empty\n");(*T)->ch = (char *)malloc(sizeof(char) * len);if(!(*T)->ch)fprintf(stderr,"error\n");for(j=0;j<len;j++){(*T)->ch[j] = chars[j];(*T)->length++;}}return OK;}//返回串的元素个数(长度)Status StrLength(HString *T){char *c;int len;if(!T->ch)fprintf(stderr,"empty error\n");else{for(len=0,c=T->ch;*c;len++,c++);}return len;}//比较串s,和串TStatus StrCompare(HString *S,HString *T){int i;for(i=0; i<S->length && i<T->length;i++){if(S->ch[i] != T->ch[i])return (S->ch[i]-T->ch[i]);}return (S->length - T->length);}//清空串TStatus StrClear(HString *T){if(!(T->length))fprintf(stderr,"empty error\n");else{free(T->ch);T->ch = NULL;T->length =0;}return OK;}//把串S1和串s2拼接成一个串TStatus StrCat(HString **T,HString *s1,HString *s2){int i;int len1,len2,len;if((*T)->ch)free((*T)->ch);len = s1->length + s2->length;(*T)->ch = (char *)malloc(sizeof(char)*len);for(i=0;i<s1->length;i++)(*T)->ch[i] = s1->ch[i];for(i=s1->length ; i<len;i++)(*T)->ch[i] = s2->ch[i-s1->length];return OK;}//用sub返回串T的第pos个元素起len长度的子串Status SubString(HString **sub,HString *T,int pos,int len){int i;if((*sub)->ch)free((*sub)->ch);if(T->length < len){fprintf(stderr,"error len\n");return FALSE;}if(pos < 0){fprintf(stderr,"error pos\n");return FALSE;}(*sub)->ch = (char *)malloc(sizeof(char)*len);for(i=0;i<len;i++){(*sub)->ch[i] = T->ch[pos+i];(*sub)->length++;}return OK;}//输出串T的所有元素Status OutString(HString *T){int i;if(!T->length)fprintf(stderr,"empty error\n");for(i=0;i<T->length;i++)printf("%c",T->ch[i]);printf("\n");return OK;}int main(void){HString *T;HString *sub;sub =(char *)malloc(sizeof(char)); T = (char *)malloc(sizeof(char));char *chars="abcdefg";StrAssign(&T,chars);SubString(&sub,T,2,3);OutString(sub);OutString(T);return 0;}
0 0
- C语言实现串,和简单的主函数测试
- C语言实现单链表,和测试主函数
- C语言实现的简单的print函数,只支持%c和%d。
- C语言实现简单的记忆力测试游戏
- 如何使用纯win32函数和C语言实现一个简单的文本编辑器
- C语言测试。自己实现scandir 函数
- 一个简单用C语言实现的日志函数
- 一个简单用C语言实现的日志函数
- python调用c语言函数的一种简单实现方法
- C语言中strstr函数的简单实现
- C语言的量的定义和简单函数
- C语言 memset函数简单实现
- C语言 atoi函数简单实现
- C语言 itoa函数简单实现
- c语言中链表的概念和简单的实现
- C语言的字符测试函数
- C语言中_nop_()函数的测试
- C语言 递归函数的一些测试
- Qt5 mouseless 测试
- CABasicAnimation 基本动画
- 解析Android开发优化之:对Bitmap的内存优化详解
- 基于x86 TDMA CSMA选择的嵌入式设计
- Assembly Intro - Inline Assembly Versus Non-Inline Assembly
- C语言实现串,和简单的主函数测试
- HTML学习笔记(2)----HTML的发展历史
- JAVA 线程
- 更新boost库
- jQuery 异步上传插件 Uploadify 使用 (Java平台)
- GRE写作必备句型
- 简要分析unity3d中剪不断理还乱的yield
- CABasicAnimation的基本使用方法(移动·旋转·放大·缩小)
- C++ static 全局变量使用注意