这篇文章将为大家详细讲解有关C函数如何仿写JAVA::String操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
模拟JAVA String 函数处理
HLUtil.h
/**
* Ext-C Java::String.
* replaceFirst Str1 string will replace the first occurrence of the string str2 into str3.
*/
static void replaceFirst(char *str1,char *str2,char *str3);
/**
* Ext-C Java::String.
* Will appear in all str2 str1 are replaced str3.
*/
static void replace(char *str1,char *str2,char *str3);
/**
* Ext-C Java::String.
* Src string interception, labeled start from the beginning to the end-1 (end front) of the string stored in dest (index starts at 0).
*/
static void substring(char *dest,char *src,int start,int end);
/**
* Ext-C Java::String.
* Return the src subscript index character.
*/
static char charAt(char *src,int index);
/**
* Ext-C Java::String.
* Return the position of the first occurrence of str2 (The following table index) in str1, there is no return -1.
*/
static int indexOf(char *str1,char *str2);
/**
* Ext-C Java::String.
* Location (subscript) returns the last occurrence of str1 str2, there is no return -1.
*/
static int lastIndexOf(char *str1,char *str2);
/**
* Ext-C Java::String.
* Remove the first non-blank character in front of the left str whitespace characters (spaces and horizontal tabs).
*/
static void ltrim(char *str);
/**
* Ext-C Java::String.
* Delete str last non-blank character behind all whitespace characters (spaces and horizontal tabs).
*/
static void rtrim(char *str);
/**
* Ext-C Java::String.
* Whitespace characters to delete str ends.
*/
static void trim(char *str);
HLUtil.cpp:
void HLUtil:: replaceFirst(char *str1,char *str2,char *str3)
{
int length = strlen(str1)+1;
if(length>1)
{
char *str4 =newchar[length];
char *p;
strcpy(str4,str1);
if((p=strstr(str1,str2))!=NULL)
{
while(str1!=p&&str1!=NULL)
{
str1++;
}
str1[0]='\0';
strcat(str1,str3);
strcat(str1,strstr(str4,str2)+strlen(str2));
}
delete str4;
str4 = NULL;
}
}
void HLUtil:: replace(char *str1,char *str2,char *str3)
{
while(strstr(str1,str2)!=NULL)
{
replaceFirst(str1,str2,str3);
}
}
void HLUtil:: substring(char *dest,char *src,int start,int end)
{
int i=start;
if(start>strlen(src))return;
if(end>strlen(src))
end=strlen(src);
while(i<end)
{
dest[i-start]=src[i];
i++;
}
dest[i-start]='\0';
return;
}
char HLUtil:: charAt(char *src,int index)
{
char *p=src;
int i=0;
if(index<0||index>strlen(src))
return 0;
while(i<index)i++;
return p[i];
}
int HLUtil:: indexOf(char *str1,char *str2)
{
char *p=str1;
int i=0;
p=strstr(str1,str2);
if(p==NULL)
return -1;
else{
while(str1!=p)
{
str1++;
i++;
}
}
return i;
}
int HLUtil:: lastIndexOf(char *str1,char *str2)
{
char *p=str1;
int i=0,len=strlen(str2);
p=strstr(str1,str2);
if(p==NULL)return -1;
while(p!=NULL)
{
for(;str1!=p;str1++)i++;
p=p+len;
p=strstr(p,str2);
}
return i;
}
void HLUtil:: ltrim(char *str)
{
int i=0,j,len=strlen(str);
while(str[i]!='\0')
{
if(str[i]!=32&&str[i]!=9)break;
i++;
}
if(i!=0)
for(j=0;j<=len-i;j++)
{
str[j]=str[j+i];
}
}
void HLUtil:: rtrim(char *str)
{
char *p=str;
int i=strlen(str)-1;
while(i>=0)
{
if(p[i]!=32&&p[i]!=9)break;
i--;
}
str[++i]='\0';
}
void HLUtil:: trim(char *str)
{
ltrim(str);
rtrim(str);
}
关于“C函数如何仿写JAVA::String操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.xuebuyuan.com/3266053.html