c 语言 string类型,C语言模拟String对象类型

length)

{

if(str->ch[i]>='a' && str->ch[i]<='z')

str->ch[i]-=32;/* Converts to capital */

i++;

}

}

void ToLowerCase(String* str)

{

int i=0;

while(ilength)

{

if(str->ch[i]>='A' && str->ch[i]<='Z')

str->ch[i]+=32;/* Converts to lower case */

i++;

}

}

int StartWith(const String* str,const char* chars)

{

int i=0;

while(*chars!='\0')

{

if(str->ch[i++] != *chars++)

return FALSE;

}

return TRUE;

}

int EndWith(const String* str,const char* chars)

{

int i=str->length-GetCharsLength(chars);

while(*chars!='\0')/* chars not end */

{

if(str->ch[i++] != *chars++)/* Not equal */

return FALSE;

}

return TRUE;

}

int GetCharsLength(const char* chars)

{

int len=0;

while(*chars!='\0')/* Not '\0' */

{

++len;

++chars;

}

return len;

}

int main()

{

String str,sub_str,concat_str;

CreateString(&str,"Yannis");

printf("String: ");

PrintlnString(&str);

printf("String Length: %d\n",StringLength(&str));

printf("String Empty: %d (true:1,false:0)\n",StringEmpty(&str));

printf("Substring from 1 to 4: ");

if(SubString(&str,1,4,&sub_str))

PrintlnString(&sub_str);

printf("\"Yannis\" contains \"anni\": %d\n",Contains(&str,&sub_str));

printf("Index of sub-string \"anni\": %d (brute force method)\n",Index(&str,&sub_str,0));

printf("Concat \"Yannis\" and \"anni\": ");

Concat(&concat_str,&str,&sub_str);

PrintlnString(&concat_str);

printf("Clear concated string: ");

Clear(&concat_str);

PrintlnString(&concat_str);

printf("Compare: \"Yannis\" with \"anni\"(EQ=0,LT<0,MT>0): %d\n",Compare(&str,&sub_str));

printf("Fetch char: %c\n",CharAt(&str,1));

printf("First index of 'n': %d\n",FirstIndexOf(&str,'n'));

printf("Last index of 'n': %d\n",LastIndexOf(&str,'n'));

printf("SetCharAt 5: (old:%c,new:%c): ",SetCharAt(&str,5,'o'),'o');

PrintlnString(&str);

printf("ReplaceFirst: (old:%c,new:%c): ",ReplaceFirst(&str,'w'),'w');

PrintlnString(&str);

printf("ReplaceLast: (old:%c,new:%c): ",ReplaceLast(&str,'s'),'s');

PrintlnString(&str);

printf("ReplaceAll: (old:%c,new:%c),%d characters placed: ",'n','t',ReplaceAll(&str,'n','t'));

PrintlnString(&str);

printf("ToUpperCase: ");

ToUpperCase(&str);

PrintlnString(&str);

printf("ToLowerCase: ");

ToLowerCase(&str);

PrintlnString(&str);

printf("Start with \"wat\": %d\n",StartWith(&str,"wat"));

printf("End with \"is\": %d\n",EndWith(&str,"is"));

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值