`
cuiyadll
  • 浏览: 203190 次
文章分类
社区版块
存档分类
最新评论

C函数仿写 JAVA::String操作

c 
阅读更多

模拟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 =new char[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);

}

 

分享到:
评论

相关推荐

    std::string format格式化函数源代码及两种格式化方法

    而`format`函数通常指的是用于格式化输出的工具,类似于C语言中的`printf`或C++的`std::stringstream`。本项目提供的`std::string format`函数是作者自定义的一个实现,它提供了一种方便的方式来格式化`std::string`...

    解决dbf Failed to parse Number: For input string: "-.---"

    5. **Utils.java**:这是一个通用工具类,可能包含了处理字符编码转换或其他辅助功能的函数。 6. **DBFException.java**:这可能是自定义的异常类,用于抛出自定义的错误信息,如解析失败或编码问题。 通过这些源...

    C语言标准函数库详解.pdf

    在C语言标准函数库中,还有许多其他的头文件和函数,例如:&lt;string.h&gt;头文件提供了一组字符串处理函数,例如:strcpy()、strcat()等,用于实现字符串处理操作。 需要注意的是,C语言标准函数库中的函数都可以被重载...

    单片机C语言实例38:字符串函数string.h应用举例.txt

    单片机C语言实例38:字符串函数string.h应用举例.txt

    codeblocks中报错:'to_string' was not declared in this scope解决方案

    `std::to_string`是C++11标准引入的一个函数,用于将数字转换为字符串。在更早的C++版本中,这个功能可能不被支持或者需要通过其他方式实现。以下是解决这个问题的详细步骤和相关知识点: 1. **检查编译器版本**: ...

    C++实现string存取二进制数据的方法

    首先,要理解STL string的构造函数。例如,当使用以下语句创建string对象时: ```cpp string str1(data); ``` 这里的`str1`会将`data`数组视作C风格字符串,即遇到第一个空字符('\0')时停止复制,因此`str1`只包含...

    c++结构体string无法用malloc分配内存

    这个默认构造函数不会执行任何特定操作,但对于像`std::string`这样的成员,它的存在意味着在创建结构体实例时,每个成员都会得到初始化。 总结来说,`malloc()`仅分配内存,不调用构造函数,因此不适合用于含有非...

    C语言实现String字符串及其函数stringUtil

    本项目名为"C语言实现String字符串及其函数stringUtil",主要关注的是如何在C语言环境中自定义处理字符串的函数,以扩展标准库中提供的功能。通过分析`stringUtil.c`源代码和`stringUtil.h`头文件,我们可以了解一些...

    string类型的全部函数

    `c_str`函数将`string`转换为C风格的字符串,即`const char*`。这在需要与不支持`std::string`的旧式API交互时很有用。例如: ```cpp std::string str = "C Style"; const char* cStr = str.c_str(); ``` #### 6. `...

    c语言函数库(C函数大全)

    C语言函数库,也称为C标准库,是C编程语言的核心组成部分,包含了大量预先定义的函数,供程序员在编写程序时使用。这些函数涵盖了输入输出、字符串处理、数学运算、内存管理等多个方面,极大地丰富了C语言的功能并...

    Java中颜色的String和Color对象之间的互相转换

    Java 中颜色的 String 和 Color 对象之间的互相转换 在 Java 中,颜色的表示形式有多种,包括字符串形式和 Color 对象形式。这两种形式可以互相转换,本文将介绍 Java 中颜色的 String 和 Color 对象之间的互相转换...

    C语言函数详解

    C语言中的函数是其核心特性之一,它使得代码组织得更加模块化,便于代码复用和维护。函数在C语言中扮演着至关重要的角色,它们可以视为可重用的代码块,执行特定任务并可能返回结果。以下是关于C语言函数的详细解释...

    Unicode CString和 std::string 的完美转换,不会有64K限制

    另一方面,std::string是C++标准库中的一个类,它用于存储、操作和管理C风格的字节字符串,通常用于ASCII或多字节字符集,但也可以通过指定编码来处理Unicode字符串。 在进行Unicode CString和std::string之间的...

    basic-string.h

    是一个C++标准库的头文件,支持sort函数等等 std::basic_string C++ 字符串库 std::basic_string 定义于头文件 &lt;string&gt; template&lt; class CharT, class Traits = std::char_traits, class Allocator = std::...

    C语言语法着色中文版函数大全.pdf

    C语言是一种广泛使用的计算机编程语言,其标准库中提供了丰富的函数,以支持各种编程需求。本文档详细列出了这些函数,并采用了中文语法着色的格式,使得在查阅时更加方便和直观。以下是一些重要的C语言函数知识点,...

    JAVA:数据库操作封装

    ### JAVA:数据库操作封装 #### 概述 在Java开发中,进行数据库操作是一项非常常见的任务。为了提高代码的可维护性、复用性和降低出错率,通常会将常用的数据库操作方法进行封装,形成一个统一的操作接口。这种...

    QTP 常用函数,如:Left 函数等

    这些函数是QTP(Quick Test Professional)测试自动化工具中非常重要的组成部分,能够帮助用户更灵活地处理和操作字符串。通过对这些函数的理解和运用,可以显著提高测试脚本的编写效率和准确性。

    C语言函数速查工具

    "C语言函数速查工具"是一款专为C程序员设计的实用参考资源,尤其适合初学者和有经验的开发者在编写代码时快速查找和理解C语言中的各种标准函数。 这个工具提供了中文界面,使得国内用户在学习和使用过程中能够更...

    C语言函数表 C开发必备

    作为C开发的必备工具,"C语言函数表"是程序员日常编码的重要参考资源。这份由清华大学学生精心编纂的资料,旨在帮助开发者更深入地理解和运用C语言中的各种函数。 在C语言中,函数是代码组织的基本单元,它封装了一...

Global site tag (gtag.js) - Google Analytics