C语言模拟String对象类型

用C语言模拟Java等面向对象语言中的String对象。

#include <stdio.h>
#include <malloc.h>

typedef struct
{
	char* ch;
	int length;
}String;

#define TRUE 1
#define FALSE 0
#define OVERFLOW -1
#define null '\0'

void InitString(String* str);
int CreateString(String* str,const char* chars);
void PrintString(const String* str);
void PrintlnString(const String* str);
int StringLength(const String* str);
int StringEmpty(const String* str);
int Compare(const String* str1,const String* str2);
void Clear(String* str);
int Concat(String* str,const String* str1,const String* str2);
int SubString(const String* str,int pos,int len,String* sub_str);
char CharAt(const String* str,int pos);
int Index(const String* str,const String* sub,int pos);
int Contains(const String* str,const String* sub);
int FirstIndexOf(const String* str,char ch);
int LastIndexOf(const String* str,char ch);
char SetCharAt(String* str,int pos,char newChar);
char ReplaceFirst(String* str,char newChar);
char ReplaceLast(String* str,char newChar);
int ReplaceAll(String* str,char oldChar,char newChar);
void ToUpperCase(String* str);
void ToLowerCase(String* str);
int StartWith(const String* str,const char* chars);
int EndWith(const String* str,const char* chars);
int GetCharsLength(const char* chars);

void InitString(String* str)
{
	str->ch=NULL;
	str->length=0;
}

int CreateString(String* str,const char* chars)
{
	int len=GetCharsLength(chars);

	InitString(str);

	if(len>0)
	{
		char* pStr;

		if(!(str->ch=(char*)malloc(len*sizeof(char))))
			return OVERFLOW;

		pStr=str->ch;

		while(*chars!='\0')/* Copy values */
		{
			*pStr++ = *chars++;
		}

		str->length=len;
	}
	return len;
}

void PrintString(const String* str)
{
	int i
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值