当前位置:文档之家› 字符串的操作

字符串的操作

字符串的操作
字符串的操作

上机实习报告

实验题目:实现字符串的操作

基本要求:

(1)字符串采用动态数组存储,建立两个字符串String1和String2,输出两个字符串(2)将字符串String2的头n个字符添加到String1的尾部,输出结果

(3)查找串String3在String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上,输出结果

测试数据:

(1)string1:”typedefstructArcBox”

String2:”VertexTypedata”

String3:”data”

(2) String1:”structArcBox”

String2:”VertexType”

String3:”Box”

算法思想:

1用动态数组存储,建立两个字符串String1和String2,输出两个字符串。

2将字符串String2的头n个字符添加到String1的尾部,输出结果

3查找串String3在String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上,输出结果

模块划分:

(1)void Initiate(DString *S, int max, char *string)的作用是:初始化字符串S,将string的字符复制到S中;

(2)int Insert(DString *S, int pos, DString T)的作用是:在主串的pos位置插入子串T;

(3)int Delete(DString *S, int pos, int len)函数的功能是:删除主串s从pos位置开始的长度为len的子串,删除成功则返回1,失败则返回0

(4) int SubString(DString *S, int pos, int len, DString *T) 取主串S从pos位置开始的长度为len的字串,取成功返回1,失败返回0;

(5)void Destroy(DString *S)的函数的功能是:撤销串S所占的空间

(6)void BFIndex(DString S,int start,DString T)函数的功能是:查找子串S从start 开始的子串T

数据结构:

typedef struct

{

char *str;

int maxLength;

int length;

} DString;

实验程序:

头文件:

typedef struct

{

char *str;

int maxLength;

int length;

} DString;

void Initiate(DString *S, int max, char *string)

{

int i;

S->str = (char *)malloc(sizeof(char)*max);

S->maxLength=max;

S->length = strlen(string);

for(i = 0; i < S->length; i++)

S->str[i] = string[i];

}

int Insert(DString *S, int pos, DString T)

{ int i;

if(pos < 0)

{ printf("参数pos出错!"); return 0; }

else

{

//重新申请S->str所指数组空间,原数组元素存放在新数组的前面

if(S->length + T.length > S->maxLength)

realloc(S->str, (S->length+T.length)*sizeof(char));

S->maxLength=S->length+T.length;

for(i = S->length-1; i >= pos; i--)

S->str[i+T.length] = S->str[i]; //依次后移T.length个位置

for(i = 0; i < T.length; i++)

S->str[pos+i] = T.str[i]; //插入字串

S->length = S->length + T.length; //改变S的数据元素个数

return 1;

}

}

//删除主串s从pos位置开始的长度为len的子串,删除成功则返回1,失败则返回0 int Delete(DString *S, int pos, int len)

{ int i;

if(S->length <= 0)

{ printf("数组中未存放字符无元素可删! \n"); return 0;}

else if(pos < 0 || len < 0 || pos+len > S->length)

{ printf("参数pos和len不合法"); return 0; }

else

{

for(i = pos+len; i <= S->length-1; i++)

S->str[i-len] = S->str[i]; //依次前移len个位置 S->length = S->length - len; //重置数据元素个数

return 1;

}

}

//取主串S从pos位置开始的长度为len的字串,取成功返回1,失败返回0 int SubString(DString *S, int pos, int len, DString *T)

{ int i;

if(pos < 0 || len < 0 || pos+len > S->length)

{ printf("参数pos和len出错!");

return 0;

}

if(len>T->maxLength)

{

T->str=(char*)malloc(len*sizeof(char));

T->maxLength=len;

}

for(i = 0; i < len; i++)

T->str[i] = S->str[pos+i];

T->length = len;

return 1;

}

void Destroy(DString *S)

{

free(S->str);

S->maxLength = 0;

S->length = 0;

}

void BFIndex(DString S,int start,DString T)

{

int i=start,j=0,v;

while(i

{

if(S.str[i]==T.str[j])

{i++;

j++;

}

else {

i=i-j+1;

j=0;

}

}

if(j==T.length)

{ v=i-T.length;

printf("串String3在String1中的%d位置",v);}

else {

printf("串String3在String1中不存在!\n");

Insert(&S,S.length,T);

for(i=0;i

printf("%c",S.str[i]);

printf("\n");

}

}

主函数测试:

#include

#include

#include

#include"head.h"

void main()

{

DString mystring1,mystring2,mystring3,mystring4;

int i,max1=19,max2=14,max3=3,max4=0;

//初始化

Initiate(&mystring1,max1,"typedefstructArcBox"); Initiate(&mystring2,max2,"VertexTypedata");

Initiate(&mystring3,max3,"data");

Initiate(&mystring4,max4,"");

//建立两个字符串String1和String2,输出两个字符串printf("字符串mystring1是:");

for(i=0;i

printf("%c",mystring1.str[i]);

printf("\n");

//输出第二个字符串

printf("字符串mystring2是:");

for(i=0;i

printf("%c",mystring2.str[i]);

printf("\n");

//将字符串String2的头5个字符添加到String1的尾部,输出结果SubString(&mystring2,0,5,&mystring4);

Insert(&mystring1,mystring1.length,mystring4);

//查找串String3在String1中的位置,若String3在String1中不存在,//则插入String3在String1中的m位置上,输出结果

for(i=0;i

printf("%c",mystring1.str[i]);

printf("\n");

BFIndex(mystring1,0,mystring3);

printf("\n");

printf("\n");

printf("\n");

printf("\n");

max1=12,max2=10,max3=3,max4=0;

//初始化

Initiate(&mystring1,max1,"structArcBox");

Initiate(&mystring2,max2,"VertexType");

Initiate(&mystring3,max3,"Box");

Initiate(&mystring4,max4,"");

//建立两个字符串String1和String2,输出两个字符串

printf("字符串mystring1是:");

for(i=0;i

printf("%c",mystring1.str[i]);

printf("\n");

//输出第二个字符串

printf("字符串mystring2是:");

for(i=0;i

printf("%c",mystring2.str[i]);

printf("\n");

//将字符串String2的头5个字符添加到String1的尾部,输出结果SubString(&mystring2,0,5,&mystring4);

Insert(&mystring1,mystring1.length,mystring4);

//查找串String3在String1中的位置,若String3在String1中不存在,//则插入String3在String1中的m位置上,输出结果

for(i=0;i

printf("%c",mystring1.str[i]);

printf("\n");

BFIndex(mystring1,0,mystring3);

printf("\n");

Destroy(&mystring4);

}

测试情况:

(1)程序运行输出为:

(2)测试结果分析:

程序运行结果和人工模拟分析过程完全相同,说明程序设计正确;

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

各种字符串处理函数示例(基本)

示例 1.字符串输出示例。 程序: #include void main(void) { char str[25]={"Welcome to our city!"}; puts(str); puts("Thank you!"); } 结果: 2.字符串输入实例。(注意比较gets与scanf和puts与printf的区别)程序: #include void main(main) { char str[20]; gets(str); puts(str); printf("*********\n"); scanf("%s",str); puts(str); } 结果: 3.测字符串长度函数strlen()的使用。 程序: #include #include void main(main) { char a[10]="program";

int x,y; x=strlen(a); y=strlen("abc13"); printf("%d\n%d\n\n",x,y); } 结果: 4.字符串连接函数的使用。 程序: #include #include void main(main) { char s1[20]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果: 修改后 程序: #include #include void main(main) { char s1[5]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果:

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

各种C语言字符串操作,str....

字符串操作 strchr 原型:char *strchr(const char* _Str,int _Val) char *strchr(char* _Str,int _Ch) 头文件:#include 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果s中不存在c则返回NULL。 返回值:成功则返回要查找字符第一次出现的位置,失败返回NULL strcmp 原型:extern int strcmp(const char *s1,const char *s2); C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零; 若str1>str2,则返回正数; 若str1

对于设置了LC_COLLATE语言环境的情况下,则根据LC_COLLATE设置的语言排序方式进行比较。例如:汉字,根据拼音进行比较。 strcpy 原型:char *strcpy(char *dest, const char *src); 头文件:#include 和#include 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 strcspn 原型:size_t strcspn(const char *s, const char *reject); 头文件:#include 功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,包括结束符NULL,返回这个字符在S1中第一次出现的位置。 说明:(返回字符串s1中第一个在s2中出现的字符在s1中的下标值,亦即在s1中出现而s2中没有出现的子串的长度。) strdup 原型:char *strdup(const char *s); 功能: 将串拷贝到新建的位置处 strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。 返回一个指针,指向为复制字符串分配的空间;如果分配空间失败,则返回NULL值。

Pascal常用字符串函数

一、数学函数: Inc(i) 使I:=I+1; Inc(I,b) 使I:=I+b; Abs(x) 求x的绝对值例:abs(-3)=3 Chr(x) 求编号x对应的字符。例:Chr(65)=’A’ chr(97)=’a’ chr(48)=’0’ Ord(x) 求字符x对应的编号。例:ord(‘A’)=65 ord(‘a’)=97 另外:ord(false)=0 o rd(true)=1 Sqr(x) 求x的平方。例:sqr(4)=16 Sqrt(x)求x的开方. 例:sqrt(16)=4 round(x) 求x的四舍五入例:round(4.5)=5 trunc(x) 求x的整数部分例:trunc(5.6)=5 结果是integer型 int(x) 求x的整数部分例int(5.6)=5.0 结果是real型 frac (x)求x的小数部分例frac(5.6)=0.6 pred(x) 求x的前导pred(‘b’)=’a’ pred(5)=4 pred(true)=false succ(x) 求x的后继succ(‘b’)=’c’ succ(5)=6 succ(false)=true odd(x) 判断x是否为奇数。如果是值为true,反之值为false. Odd(2)=false od d(5)=true power(a,n) 求a的n次方power(2,3)=8 exp(b*ln(a)) a的b次方 random 取0~1之间的随机数(不能取到1) randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面. Fillchar(a,size(a),0) 数组初始化,即把数组a的值全部置为0 SHR: x SHR n 把x换成二进制后向右移n位,相当于把x 除以2n a shr n 等价于a div (2^n) SHL: x SHL n把x换成二进制后向左移n位,相当于把x 乘以2n 二、字符串函数 1. 连接运算concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn. 例:concat(‘11’,’aa’)=’11aa’; 2. 求子串。Copy(s,i,L) 从字符串s中截取第i个字符开始后的长度为L的子串。 例:copy(‘abdag’,2,3)=’bda’ 3. 删除子串。过程Delete(s,i,L) 从字符串s中删除第i个字符开始后的长度为L的子串。

String常见的操作和方法

String常见的操作和方法 String类适用于描述字符串事物 那么它就提供了多个方法对字符串进行操作。 常见的操作有哪些? “afbs” 1、获取 1.1 字符串中包含的字符数,也就是字符串的长度。 int length(): 获取长度。 1.2 根据位置获取位置上某个字符。 char charAt(int index): 1.3 根据字符获取字符在字符串中位置。 int indexOf(int ch): 返回的是ch在字符串中第一次出现的位置。 int indexOf(int ch, int fromIndex): 从fromIndex指定位置开始,获取ch在字符串中出现的位置。 int indexOf(int str): 返回的是str在字符串中第一次出现的位置。 int indexOf(int str, int fromIndex): 从fromIndex指定位置开始,获取str在字符串中出现的位置。 int lastIndexOf(int ch); 2、判断。 2.1 字符串中是否包含某一个子串。 boolean contains(str): 特殊之处:indexOf(str):可以索引str第一次出现的位置,如果返回-1.表示该str不存在字符串中。 所以,也可以用于对指定判断是否包含。 if(str.indexOf("aa")!=-1) 而且该方法既可以判断,又可以获取出现的位置。 2.2 字符串中是否有内容。

boolean ifEmpty(): 原理就是判断长度是否为0. 2.3 字符串是否是以指定内容开头。 boolean startsWith(str); 2.4 字符串是否是以指定内容结尾。 boolean endsWith(str); 2.5判断字符串内容是否相同。复写了Object类中的equals方法。boolean equals(str); 2.6判断内容是否相同,并忽略大小写。 boolean equalsIgnoreCase(); 3、转换 3.1 将字符数组转成字符串。 构造函数:String(char[]) String(char[],offset,count):将字符数组中的一部分转成字符串。 静态方法: static String copyValueOf(char[]); static String copyValueOf(char[] data,int offset,int count) static String valueOf(char[]): 3.2 将字符串转成字符数组。 char[] toCharArray(): 3.3 将字节数组转成字符串。 String(byte[]) String(byte[],offset,count):将字节数组中的一部分转成字符串。 3.4 将字符串转成字节数组。** byte[] getBytes(): 3.5 将基本数据类型转成字符串。 static String valueOf(int) static String valueOf(double) 3+"";//String.valueOf(3); 特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

acm常用字符串处理函数

sstrstr与strchar用法 原型:extern char *strstr(char *haystack, char *needle); 用法:#include 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例: #include #include main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } 语法:int strstr(str1,str2) str1: 被查找目标string expression to search. str2:要查找对象The string expression to find. 该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0. 例子: 功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy” (假设xxx和yyy都是一个未知的字串) char *s=” string1 onexxx string2 oneyyy”; char *p; p=strstr(s,”string2”); if(!p) printf(“Not Found!”); p=strstr(p,”one”); if(!p) printf(“Not Found!”); p+=strlen(“one”) printf(“%s”,p); 说明:如果直接写语句p=strstr(p,”one”),则找到的是xxx,不符合要求 所以需采用二次查找法找到目标

C++字符串函数详解

C++字符串函数详解 //将dest前面count个字符置为字符c. //返回dest的值. void *memset(void *dest, int c, size_t count); //从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理. //返回dest的值. void *memmove(void *dest, const void *src, size_t count); //从src复制count字节的字符到dest. 与memmove功能一样, 只是不能处理src和dest出//现重叠. //返回dest的值. void *memcpy(void *dest, const void *src, size_t count); //在buf前面count字节中查找首次出现字符c的位置. 找到了字符c或者已经搜寻了count //个字节, 查找即停止. //操作成功则返回buf中首次出现c的位置指针, 否则返回NULL. void *memchr(const void *buf, int c, size_t count); //从src复制0个或多个字节的字符到dest. 当字符c被复制或者count个字符被复制时, 复//制停止. //如果字符c被复制, 函数返回这个字符后面紧挨一个字符位置的指针. 否则返回NULL. void *_memccpy(void *dest, const void *src, int c, size_t count); //比较buf1和buf2前面count个字节大小. //返回值< 0, 表示buf1小于buf2; //返回值为0, 表示buf1等于buf2; //返回值> 0, 表示buf1大于buf2. int memcmp(const void *buf1, const void *buf2, size_t count); //比较buf1和buf2前面count个字节. 与memcmp不同的是, 它不区分大小写. //返回值同上. int memicmp(const void *buf1, const void *buf2, size_t count); //获取字符串长度, 字符串结束符NULL不计算在内. //没有返回值指示操作错误. size_t strlen(const char *string); //将字符串string中的字符顺序颠倒过来. NULL结束符位置不变. //返回调整后的字符串的指针. char *strrev(char *string);

实验5字符串的操作

博客网站设定了校验密码的规则,编写方法检验一个字符串是否是合法的密码。规则如下: 密码长度在8-16 之间 密码只能包含字母和数字 密码必须存在至少2 个数字如果用户输入的密码符合 2. import java.util.Scanner; 3. import java.util.regex.Pattern; 4. public class Check { 5. public static void main(String[] args) { 6. System.out.println("请输入密码:"); 7. Scanner sc = new Scanner(System.in); 8. String str = sc.next(); 9. Check ch = new Check(); 10. ch.checkup(str); 11. sc.close(); 12. } 13. 14. public void checkup(String str) { 15. String patternStr1 = "([0-9]|[a-zA-Z]){8,16}"; 16. String patternStr2 = ".*\\d.*\\d.*"; 17. boolean result1 = Pattern.matches(patternStr1, str); 18. boolean result2 = Pattern.matches(patternStr2, str); 19. if (result1 && result2) { 20. System.out.println(" valid password"); 21. } else { 22. System.out.println(" Invalid password "); 23. } 24. } 25. } 26. String patternStr2 = ".*\\d.*\\d.*"; 27. boolean result1 = Pattern.matches(patternStr1, str); 28. boolean result2 = Pattern.matches(patternStr2, str); 29. if (result1 && result2) { 30. System.out.println(" valid password"); 31. } else { 32. System.out.println(" Invalid password "); 33. } 34. } 35. } 要求从用户输入的多行文本中提取学生的姓名、学号及登录日期,并封装到Student 类中作为类的私有属性。创建一个Student 类型的对象数组,对学号进行升序排序并输出 /*从键盘输入多行文本,格式如下: 学生端名称,姓名,班级名称,学生ID,注册时间 姜涛,姜涛,,20092212232,2011-11-4 9:06:56

MFC中字符串操作方法的总结

在VC的编程中,常常遇到需要对字符串进行格式化处理,所谓的格式化,我自己的定义是如下的过程,例如说,需要输出一个字符串“This is charpter %d”,其中的%d,用变量int chp 来代替,生成这种字符串的操作我成为“格式化”,下面介绍一下有关的操作: 1.CString类,这个类在MFC中如果启用了UNICODE码后,就是CStringT类,注意在查找 MSDN时,需要查找的是CStringT这个类,该类与很多操作都是兼容的,特别是使用UNICODE码的情况下,该类提供了一个格式化字符串的函数: Format函数,该函数可以直接将格式化的字符串用%d, %s之类的格式符来描述,举个例子来说: CString mystr; int times = 0; mystr. Format ( _T(“This is my %d try!”), times); 值得说明的是CString提供了字符串操作的一系列函数,包括比较大小,大小写转换,字符串的连接,字符串的相等和寻找等,需要时,直接参考MSDN就可以了 2.sprintf: 虽然说CString类有着许多的优点,但是并不能包办所有的操作,最直接的一个 问题就是CString并不能直接赋值给一个字符串变量,即CString类并没有提供一种调用,可以将其内部的字符串赋值给一个字符串变量,如果要进行这种操作,则必须手动编程完成,但是某些函数中又必须要用到字符串数组类型,这个时候又面临一个问题,即字符串数组该怎样来格式化,这个时候需要调用sprintf函数,该函数是个全局函数,其调用的格式如下: sprintf( buffer, " String: %s\n", s ); 该函数中,buffer是需要被格式化的字符串数组,而“”中的内容就是格式化内容,最后的则是各种数字或这字符串等,该函数很方便使用 目前用到的格式化字符串操作,用以上两种思路都可以基本上解决,在使用注意UNICODE 就行了,如果用到了UNICODE码,注意用_T()来进行转换

java 字符串常用函数及其用法

java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 String相关函数 1)substring() 它有两种形式,第一种是:String substring(int startIndex) 第二种是:String substring(int startIndex,int endIndex) 2)concat() 连接两个字符串 例:String s="Welcome to "; String t=s.concat("AnHui"); 3)replace() 替换 它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下: String replace(char original,char replacement) 例如:String s=”Hello”.replace(’l',’w'); 第二种形式是用一个字符序列替换另一个字符序列,形式如下: String replace(CharSequence original,CharSequence replacement) 4)trim() 去掉起始和结尾的空格 5)valueOf() 转换为字符串 6)toLowerCase() 转换为小写 7)toUpperCase() 转换为大写 8)length() 取得字符串的长度 例:char chars[]={’a',’b’.’c'}; String s=new String(chars); int len=s.length(); 9)charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回值为’b’ 10)getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart 指定了子串开始字符的下标 sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

linuxc字符串操作的基本使用

Linux C 字符串操作的基本使用 Linux C 字符串操作的基本使用 所属头文件:<string.h> 0、获取字符串长度:int strlen(char *s) int strlen(char *s)函数说明:此函数用于获取s的长度,不包括'\0'注:切记最好保证s的尾部是'\0',strlen函数读到'\0'会自动停止然后统计字符数 返回值:字符数1、查找指定的字符:index函数,rindex函数,strchr函数strrchr(其中index函数和strchr函数基本相同,rindex函数和strchr函数相同)(1)char *index(const char* s, char c) char *strchr(const char* s, char c) 函数说明:index函数用于查找字符串s中第一个出现c字符的地址,然后将该字符的地址返回.strchr函数与index相似返回值:若找到指定到字符则返回该字符的地址,否则返回0 举例: char s[] = "abcdeabcde"; char *sdest = NULL; sdest = index(s,'d'); printf("sdest: %s\n",sdest); 输出结果:sdest: deabcde

(2)char *rindex(const char* s, char c) char *strrchr(const char* s, char c) 函数说明:类似于index函数,但是他是从字符串开始查找字符c,并返回从字符串尾部开始第一个符合条件的字符的地址(strrchr与rindex相似) 返回值:同index一样 举例: char s[] = "abcdeabcde"; char *sdest = NULL; sdest = rindex(s,'d'); printf("sdest: %s\n",sdest); 输出结果:sdest: de2、查找满足条件字符串中任意一个字符:strpbrk函数char *strpbrk(const char *s, const char *accept) 函数说明:查找s字符串第一个符合accept字符串中任意一个字符的字符的地址 返回值:符合条件的字符的地址 举例: char s[] = "abcdefgefgbe"; char t[] = "omgf"; char *d = NULL;

字符串处理函数大全

字符串处理函数大全 bcmp(比较内存内容)相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件;include 定义函数;int bcmp ( const void *s1,const void * s2,int n); 函数说明;bcmp()用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0。返回值;若参数s1 和s2 所指的内存内容都完全相同则返回0 值,否则返回非零值。 附加说明;建议使用memcmp()取代。 范例:参考memcmp()。 //================================================================ bcopy(拷贝内存内容)相关函数 memccpy,memcpy,memmove,strcpy,ctrncpy 表头文件;#include 定义函数;void bcopy ( const void *src,void *dest ,int n); 函数说明;bcopy()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址,不过参数src与dest在传给函数时是相反的位置。 返回值 ;附加说明建议使用memcpy()取代 范例 #include main() { char dest[30]=”string(a)”; char src[30]=”string\0string”; int i; bcopy(src,dest,30);/* src指针放在前*/ printf(bcopy(): “) for(i=0;i<30;i++) printf(“%c”,dest[i]); memcpy(dest src,30); /*dest指针放在钱*/ printf(…\nmemcpy() : “); for(i=0;i<30;i++) printf(“%c”,dest[i]); 执行 bcopy() : string string memcpy() :string sring //================================================================ bzero(将一段内存内容全清为零)相关函数 memset,swab 表头文件;#include 定义函数;void bzero(void *s,int n); 函数说明:bzero()会将参数s所指的内存区域前n个字节,全部设为零值。相当于调用memset((void*)s,0,size_tn); 返回值:附加说明建议使用memset取代

字符串的相关操作(数据结构课程设计C语言版)

课程设计报告课程设计题目:字符串的相关操作 学生姓名 专业 班级 指导教师 2012年6月24日

一、题目及要求 ○1课程设计目的: 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。 ○2题目:字符串的相关操作 1)建立两个字符串string1和string2 2)编程实现字符串的连接、比较、查询string2在string1的位置、求子串、求串长

二、模块图 菜单:choose 1 2 3 4 5 6 7 0 创建字符串 显示 求串长 比较串 串连接 串定位 求子串 退出 创建s1和s2 1 4 比较s1和s2 5 求s1和s2连接后的串长 定位s2在新生成的串里的位置 显示s1和s2连接后的串 退出 求s1的字串 2 3 6 7

三、程序清单 #include #include #include #define maxlen 40 typedef struct { char ch[maxlen+1]; int len; }sstring; void strini(sstring *s) { s->len=0; } char *strcreate(sstring *s,int len) { if(len<=0||len>maxlen) printf("the len is illegal!\n"); else { printf("please input the data of the sstirng:\n"); s->len=len;

Js字符串操作函数大全

Js字符串操作函数大全 /* ****************************************** 字符串函数扩充 ****************************************** */ /* =========================================== //去除左边的空格 =========================================== */ String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } /* =========================================== //去除右边的空格 =========================================== */ String.prototype.Rtrim = function() { return this.replace(/(\s*$)/g, ""); } /* =========================================== //去除前后空格 =========================================== */ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } /* ===========================================

matlab中的字符串操作总结

字符串操作总结 作者:晏江 C{3}对内容进行寻址 C(3)对单元索引 (24)利用正在表达式搜索 >> str=’asdfa sfdgdfg tyefgr tyj sdfg qwfge r rety yi .,m zxfgc fdgh fgh’;

>> regexp(str,’fg’) ans = 12 18 29 34 54 63 我们可以使用字符类来匹配指定的字符,如一个字母,一个数字或一个空格符,也可以用来匹配一个字符集。最有用的一个字符类是一个句号(.),它用来表示任意的单个字符。另外一个有用的字符类是位于方括号中的字符序列或某一部分字符,这一语法用来表示寻找与方括号中任何一个字符元素匹配的字符串子集。例如: 我们要在str中寻找第一个字符为d,最后一个字符为f或g的三个字符组合,可以使用下面的代码, >> regexpi(str,’d.[fg]’) ans = 11 28 >> regexpi(str,’s.[fg]’,'match’)列出来 ans = ’sdf’’sdf’ >> regexp(str,’[a-d]’) ans = 1 3 5 9 11 28 56 59 列出a-d所有 (25)关系运算: xor(x,y) 异或关系 any(X) X中有一个不为零,结果就为一 all(X) X中只要有一个为零即为零。 B=B+(B==0)*eps,这样可以避免零的出现 >> B=-2:2 B = -2 -1 0 1 2 >> x=sin(B)./B Warning: Divide by zero. x = 0.4546 0.8415 NaN 0.8415 0.4546 >> B=B+(B==0)*eps B = -2.0000 -1.0000 0.0000 1.0000 2.0000 >> x=sin(B)./B x = 0.4546 0.8415 1.0000 0.8415 0.4546 (26)流程控制 switch expression

(完整版)vb_字符串处理函数大全

mid(字符串,从第几个开始,长度)ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如mid("坦然面对",1,3) 则返回"坦然面" instr(从第几个开始,字符串1,字符串2)ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如instr(1,"坦然面对","坦") 则返回1,instr(2,"坦然面对","坦"),则返回0 。0 表示未找到 InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 例如instrRev("坦然面对","坦",2) 则返回2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。0 表示未找到 left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符 例如Left("坦然面对",3) 则返回"坦然面" right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符 例如Right("坦然面对",3) 则返回"然面对" ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效 例如ucase("tanRANmiAnDui") 则返回"TANRANMIANDUI" lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效 例如lcase("tanRANmiAnDui") 则返回"tanranmiandui" asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 例如asc("坦") 则返回-13127; asc("坦然面对") 也返回-13127 chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 例如chr(-13127) 则返回"坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本) trim(字符串) Byval 返回去掉了前、后之后的[字符串] 例如trim("坦然面对") 则返回"坦然面对" ,中间的空格不受任何影响 string(个数,字符) Byval 返回[个数]个[字符] 例如string(3,"坦") 则返回"坦坦坦" , 而string(3,"坦然面对") 也返回"坦坦坦",只有首字符才有效 space(个数) Byval 返回[个数]个空格 例如space(5) 则返回""

相关主题
文本预览
相关文档 最新文档