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

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);

}

 

分享到:
评论

相关推荐

    string的常用函数

    本文将深入探讨 `std::string` 类的各种构造方法以及一系列重要的字符串操作函数,并对它们的功能进行详细说明。 #### 二、构造函数与析构函数 `std::string` 类提供了多种构造方法来创建字符串对象: 1. **默认...

    C++实现 类string的 普通构造函数, 拷贝构造函数 析构函数 和赋值函数

    在C++编程中,`std::string`是一个非常重要的类,它用于表示和操作字符串。在自定义类设计中,通常需要实现四个特殊成员函数:普通构造函数、拷贝构造函数、析构函数和赋值运算符。这些函数是面向对象编程中的核心...

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

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

    c语言函数大全 所有函数

    "C语言函数大全"涵盖了从基本操作到复杂计算的各种函数,它们构成了C语言的核心功能。 1. **基本输入输出函数**: - `printf()`:用于向标准输出设备(通常是屏幕)打印格式化的数据。 - `scanf()`:从标准输入...

    C语言函数大全(语法着色版)

    《C语言函数大全(语法着色版)》是一份针对C语言编程的参考资料,它集成了C语言的各种函数,提供了语法高亮的展示方式,旨在帮助程序员更清晰、直观地理解和掌握C语言中的函数用法。这篇文档不仅包含了标准库函数,也...

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

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

    C语言函数速查字典-已编译的HTML 文档

    此速查字典涵盖了C语言中的核心函数,包括但不限于标准库函数(如stdio.h、stdlib.h、string.h等)以及一些特定功能的函数,例如数学运算、内存管理、输入/输出操作、字符串处理等。这些函数是C编程中的基础工具,...

    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语言的标准库(如`stdio.h`、`math.h`、`string.h`等)包含了大量预先定义的函数,例如`printf`用于输出,`scanf`用于输入,`strlen`计算字符串长度,`sqrt`求平方根等。这些函数库是C语言的基础,为开发者提供了...

    常用C语言文件操作函数大全.doc

    C语言文件操作函数大全 C语言中文件操作函数是指程序中对文件进行读、写、关闭、检测等操作的函数。这些函数都是C语言标准库stdio.h中的一部分,用于实现文件的输入/输出操作。 1. clearerr() 函数 函数说明:...

    Java通过JNI调用C语言函数库的方法.zip

    Java通过JNI(Java Native Interface)调用C语言函数库是一种常见的技术实践,它允许Java程序直接与本地操作系统和硬件交互,提高性能或者利用已有的C/C++代码库。本资料"Java通过JNI调用C语言函数库的方法.zip"提供...

    Java:构造函数与对象

    ### Java:构造函数与对象 #### 第一章:构造函数揭秘——创造者的第一次触碰 在Java编程语言中,构造函数扮演着极其重要的角色。它是一种特殊的成员方法,主要用于对象的初始化过程。构造函数没有返回类型,其...

    常用C语言函数快速查询

    本资源“常用C语言函数快速查询”是一个非常实用的工具,为程序员提供了一个方便的速查手册,涵盖了C语言中的众多核心函数,帮助开发者快速理解和应用。 速查手册通常会包含以下几个部分: 1. **标准库函数**:...

    c语言字符串函数详解--函数名及源代码整理.pdf

    C语言中提供了多种字符串函数,用于实现字符串的操作和处理。下面将对这些函数进行详细的解释和说明。 1. memset函数 函数原型:void *memset(void *dest, int c, size_t count); 函数作用:将dest前面count个...

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

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

    string类函数汇总

    string 类提供了多种构造函数、字符操作函数、特性描述函数、输入输出操作函数、赋值函数和连接函数等。 构造函数 string 类提供了多种构造函数,用于初始化 string 对象。这些构造函数包括: * `string(const ...

    JAVA:数据库操作封装

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

    C语言函数包:windows下在资源管理器中打开相应目录

    首先,我们要理解C语言本身并不包含直接打开操作系统资源管理器的内置函数。为了在Windows环境下做到这一点,我们必须借助于Windows API(应用程序接口),这是一个庞大的函数库,提供了操作系统的核心功能供开发者...

    java8函数式编程(csdn)————程序.pdf

    Java 8 函数式编程 Java 8 函数式编程是指在 Java 8 中引入的一种新的编程范式,它强加了额外的约束,即所有数据必须是不可变的,设置一次,永不改变。函数式编程将值传递给函数,该函数然后生成新值但从不修改...

    C语言函数速查工具

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

Global site tag (gtag.js) - Google Analytics