abap_字符串处理

abap_字符串处理
abap_字符串处理

abap 字符串处理

取前N位

a = a(N). "取前N位

a = a+N(2). "取第N位后的2位

a = a+N . "取第N位后的所有字符

-------------------------------------------------------

拆分字符串

SPLIT {c} AT {del} INTO {c1} ... {cn}.

作用:按照分割字符del把字符串c分割成c1…cn。

SPLIT {c} AT {del} INTO TABLE {itab}.

作用:按照分割字符del把c分割,然后放到内表中的相应字段

--------------------------------------------------------

去空格

CONDENSE {c} [NO-GAPS].:

作用:去掉字符串中的前面和后面的空格,如果指定NO-GAPS,则去掉字符串中的所有空格。常用场合:获得字符串的精确长度,用于判断。

-------------------------------------------------------

替换字符串

REPLACE {str1} WITH {str2} INTO {c} [LENGTH {l}].:

作用:把字符串c中的str1替换成str2,如果指定l,就是指定了替换的长度。如果替换成功,则SY-SUBRC设置成0。

-------------------------------------------------------

转换字符串

TRANSLATE {c} TO UPPER CASE.

TRANSLATE {c} TO LOWER CASE.:

作用:字符串的大小写的转换

TRANSLATE {c} USING {r}. :

作用:根据规则r转换字符串c

-------------------------------------------------------

截断字符串

SHIFT {c} [BY {n} PLACES] [{mode}].:

作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变。如果n超出字符串的长度,则字符串变空,所以在做此操作的时候要注意n的指定。可以首先获得该字符串的长度,方法:len=STRLEN(C)。

Mode:指定字符串截断的方向。

LEFT:从左边截断

RIGHT:从右边截断

CIRCULAR:把左边的字符放到右边。

SHIFT {c} UP TO {str} {mode}.:

作用:把字符串中在str以前的字符都去掉,同样可以指定mode,原理同上。

SHIFT {c} LEFT DELETING LEADING {str}.

SHIFT {c} RIGHT DELETING TRAILING {str}.:

作用:这两个语句就是把字符串c中前的(LEFT)或者后的(RIGHT)的字符str都去掉。

-------------------------------------------------------

查找字符串

SEARCH {c} FOR {str} {options}.:

作用:在字符串c中查找str,如果找到了,SY-SUBRC为0,SY-FDPOS为找到字符串的具体位置。

需要说明的地方:注意模式的使用

指定str:查找str,str中后面的空格忽略

指定.str.:查找str,包含了str中尾部的空格

指定*str:查找以str结尾的字符串

指定str*:查找以str开头的字符串

{options}的指定:

主要用到的就是:STARTING AT {n1}指定开始位置, ENDING AT {n2}指定结束位置1)CONCATENATE:实现字符串的合并。

基本语法:

CONCATENATE f1...fn INTO g [SEPARATED BY h]

FOR EXAMPLE:

DATA:one(10) VALUE 'Hello',

two(10) VALUE 'SAP',

result1(10),

result2(10),

l1 TYPE I,

l2 TYPE I.

CONCATENATE one two INTO result1 SEPARATED BY SPACE.

CONCATENATE one two INTO result2.

l1 = STRLEN( result1 ) + STRLEN( result2 ).

WRITE: / 'result1=',result1, "输出:result1=Hello SAP

/ 'result2=',result2. "输出:result2=HelloSAP

WRITE: / 'STRLEN=',l1. "输出:STRLEN=17

以上所示代码输出结果为result1等于Hello SAP,result2等于HelloSAP,SPARATED BY表示在连接字符串中加入分隔符号,不然合并字符串的前后空格会自动清除,上例所示中加入了空格。

2)SPLIT:实现字符串的拆分。

SPLIT f AT g INTO h1...hn:将字符串的值分配给具体变量。

SPLIT f AT g INTO TABLE itab:将字符串的值分配给一内表。

FOR EXAMPLE:

DATA:names(30) TYPE C VALUE 'HELLO,SAP',

names2 TYPE STRING,

sone(10) TYPE C,

stwo(10) TYPE C,

delimiter(1) VALUE ','.

TYPES:BEGIN OF itab_type,

word(20),

END OF itab_type.

DATA myitab TYPE STANDARD TABLE OF itab_type WITH HEADER LINE. "定义内表

SPLIT names AT delimiter INTO sone stwo.

SPLIT 'ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINTH,TEN,ELEVEN,TWELVE' AT delimiter INTO TABLE myitab.

WRITE: / 'sone=',sone, "输出:sone=HELLO

/ 'stwo=',stwo. "输出:stwo=SAP

LOOP AT myitab.

WRITE myitab. "循环输出ONE、TWO...ELEVEN。

ENDLOOP.

3)SHIFT:将字符串整体或者子串进行转移

SHIFT c .:指定字符移动方向,向左、向右或者循环移动一个字符,默认向左。

SHIFT c BY n PLACES.:指定移动字符位数。

如果操作对象是C类型,那么它的所有字符都会向前移动一位,最后一位用空格代替。倘若为STRING类型,所有的字符都会向前移动一位,最好一位删除。

FOR EXAMPLE:

DATA:str1(10) TYPE C VALUE 'ABCDEFGHIJ'.

str2 TYPE STRING,

str3(10) TYPE C,

str4(10) TYPE C,

str5(10) TYPE C,

str6(10) TYPE C.

str6 = str5 = str4 = str3 = str2 = str1.

SHIFT str1. "执行结果:'BCDEFGHIJ ',整体长度不变,左移一位,最后为空格

SHIFT str2. "执行结果:'BCDEFGHIJ',左移一位,最后一位删除

SHIFT str3 RIGHT. "执行结果:' ABCDEFGHI',整体长度不变,右移一位,首位为空格

SHIFT str4 CIRCULAR. "执行结果:'BCDEFGHIJA',整体长度不变,字符循环移动一位

SHIFT str5 BY 5 PLACES. "执行结果:'FGHIJ ',整体向左移动5位

SHIFT str6 RIGHT BY 2 PLACES. "执行结果:' ABCDEFGHIJ',整体向右移动2位

4)SHIFT语法二

SHIFT c UP TO c1.:该定义可指定某字符从某一具体子串进行位移,并将执行结果返回给系统变量SY-SUBRC,若执行成功时,返回值为"0",倘若子串与原字符串不匹配,返回值为"4"。

FOR EXAMPLE:

DATA:shift_str1(10) VALUE 'ABCDEFGHIJ',

shift_str2(10) VALUE 'ABCDEFGHIJ',

s_three(3) VALUE 'DEF',

s_four(4) VALUE 'DEF '.

SHIFT shift_str1 UP TO s_three.

WRITE: / 'shift_str1=',shift_str1,',SY-SUBRC=',SY-SUBRC. "输出:shift_str1='DEFGHIJ',SY-SUBRC=0

SHIFT shift_str2 UP TO s_four.

WRITE: /'shift_str2=',shift_str2,',SY-SUBRC=',SY-SUBRC. "输出:shift_str2='ABCDEFGHIJ',SY-SUBRC=0

5)SHIFT语法三

SHIFT c LEFT DELETING LEADING c1.:移除字符串左边的字符串。

SHIFT c RIGHT DELEING TRAILING c1.:移除字符串右边的子字符串。

FOR EXAMPLE:

DATA: shift_string1(15) VALUE ' ABCDEFGHIJ',

shift_string2(15) VALUE ' ABCDEFGHIJ',

shift_string3(15) VALUE ' ABCDEFGHIJ',

shift_string4 TYPE STRING,

m1(4) VALUE 'ABCD',

m2(6) VALUE 'HIJ'.

shift_string4 = shift_string1.

WRITE: / 'shift_string1=',shift_string1. "输出:shift_string1= ' ABCDEFGHIJ'。

SHIFT shift_string1 LEFT DELETING LEADING SPACE.

WRITE: / 'shift_string1=',shift_string1,'AA'. "输出:shift_string1= 'ABCDEFGHIJ AA',移除前面空格,后面补空格。

WRITE: / 'shift_string2=',shift_string2. "输出:shift_string2= ' ABCDEFGHIJ'。

SHIFT shift_string2 RIGHT DELETING TRAILING m1.

WRITE: / 'shift_string2=',shift_string2. "输出:shift_string2=' ABCDEFGHIJ',子字符不符合条件,未发生改变。

WRITE: / 'shift_string3=',shift_string3. "输出:shift_string3= ' ABCDEFGHIJ'。

SHIFT shift_string3 RIGHT DELETING TRAILING m2.

WRITE: / 'shift_string3=',shift_string3. "输出:shift_string3= ' ABCDEFG',移除字符串右边'HIJ',前面补空格。

WRITE: / 'shift_string4=',shift_string4. "输出:shift_string4= ' ABCDEFGHIJ'。

SHIFT shift_string4 LEFT DELETING LEADING SPACE.

WRITE: / 'shift_string4=',shift_string4,'AA'. "输出:shift_string4= 'ABCDEFGHIJ',直接删除前面的空格。

6)CONDENSE:重新整合分配字符串

CONDENSE c .

FOR EXAMPLE:

DATA condense_name(30).

condense_name(10) = ' Dr.'.

condense_name+10(10) = 'Michael'.

condense_name+20(10) = 'Hofmann'.

CONDENSE condense_name.

WRITE: / 'condense_name=',condense_name. "输出:'Dr. Michael Hofmann'

变量被重新赋值,并以空格分开,字符串前置空格被删除。若在函数后加上关键字"NO-GAPS",那么输出结果将变化为:'Dr.MichaelHofmann'。该语法同样适用于结构体中,结构体中的不同字段内容将会按字段长度被重新分配。

DATA: BEGIN OF condense_name2,

title(8) VALUE ' Dr.',

first_name(10) VALUE 'Michael',

surname(10) VALUE 'Hofmann',

END OF condense_name2.

CONDENSE condense_name2.

WRITE: / 'condense_name2=',condense_name2. "输出:Dr. Michael Hofmann 按原值输出。

WRITE: / 'condense_name2-title=',condense_name2-title, "输出:Dr. Mich,title字段被重新按长度赋值,长度为8。

/ 'condense_name2-first_name=',condense_name2-first_name, "输出:ael Hofman,first_name字段被重新按长度赋值,长度为10。

/ 'condense_name2-surname=',condense_name2-surname. "输出:n,surname字段被重新按长度赋值,长度为10。故就剩下未尾字母n。

7)TRANSLATE:实现字符串转换

TRANSLATE c TO UPPER CASE.:将字符串转换为大写。

TRANSLATE c TO LOWER CASE.:将字符串转换为小写。

FOR EXAMPLE:

DATA:city(9) TYPE C VALUE 'dongguang',

country(5) TYPE C VALUE 'CHINA'.

TRANSLATE city TO UPPER CASE.

TRANSLATE country TO LOWER CASE.

WRITE: / 'city=',city,

/ 'country=',country.

执行结果:city=DONGGUANG country=china。

TRANSLATE c USING c1.:将一字符串参照另一字符串转换。

按逐个字符判断,若原字符串中的某一字符在参考字符串中存在,那么取参考字符串中该字符首次出现位置的下一个字符串作为转换对象。若参考字符串中不存在该字符或该字符首次出现位置在参考字符串的最后一位,则不进行转换。

FOR EXAMPLE:

DATA:translate_str1(20) TYPE C VALUE 'abcabcabcXabcf',

translate_str2(15) TYPE C VALUE 'aXbaYBzbZacZB'.

TRANSLATE translate_str1 USING translate_str2.

WRITE: / 'translate_str1=',translate_str1. "执行结果:'XaZXaZXaZXXaZf'.

TRANSLATE c...FROM CODE PAGE g1 ... TO CODE PAGE g2.

SAP可以应用于多种软硬件系统,不同系统间的信息传递和通信必然涉及代码转换问

题。例如,HP-UX系统与IBM EBCDIC系统中的代码转换可通过下列语句实现,具体的代码保存在数据表TCP100中。

FOR EXAMPLE:

TRANSLATE c FROM CODE PAGE '1110' TO CODE PAGE '0100'.

8)OVERLAY:参考字符串对空白字符进行填充。

OVERLAY c1 WITH c2.

该函数对原字符串及参考字符串按字符逐一比较,若原字符串某位置字符值为空而参考字符串有值存在,则用参考字符串字符值进行取代。

FOR EXAMPLE:

DATA:overlay_str1(16) VALUE 'Th t h s ch ng d',

overlay_str2(20) VALUE 'Grab a pattern'.

OVERLAY overlay_str1 WITH overlay_str2.

WRITE: / 'overlay_str1=',overlay_str1. "输出:overlay_str1='That has changed'.

9)REPLACE:字符串按条件取代

REPLACE f ... WITH g ... INTO field.

FOR EXAMPLE:

DATA replace_str1(10) VALUE '12345ABCDE'.

REPLACE '12345' WITH '56789' INTO replace_str1.

WRITE: / 'replace_str1=',replace_str1. "输出:replace_str1='5678ABCDE'。

10)SEARCH:搜索指定字符串

A)SEARCH f FRO g:g表示被搜索的字符串。

...ABBREVIATED:从指定字符串中按顺序搜索相匹配字符串。

...STARTING AT n1:从字符串n1个字符开始搜索。

...ENDING AT n2:搜索到字符串第n2个字符止。

...AND MARK:从指定字符串是模糊搜索相匹配字符串。

B)SEARCH itab FOR g:g表示被搜索字符串。

...ABBREVIATED:从内表中按顺序逐行搜索相匹配字符串。

...STARTING AT line1:从内表中具体某行开始搜索匹配字符串。

...ENDING AT line2:搜索最大范围到内表中具体某行。

...AND MARK:从内表中模糊搜索相匹配字符串。

通过系统变量SY-SUBRC可以回执字符串查找的结果,若回执等于"0",则表示查找成功。某段字符在字符串中的具体位置保存在系统变量SY-FDPOS中。

DATA search_str(50).

MOVE 'Welcome to SAP world!' TO search_str.

SEARCH search_str FOR 'wld' ABBREVIATED.

WRITE: / 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "执行结果:wld按顺序包含在子字符串'world'中,SY-SUBRC=0,SY-FDPOS=15

SEARCH search_str FOR 'SAP' STARTING AT 10.

WRITE: / '从第十位开始:',

/ 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "执行结果:从第10位开始查找,SY-SUBRC=0,SY-FDPOS=2

SEARCH search_str FOR 'SAP' ENDING AT 10.

WRITE: / '查找第十位结束:',

/ 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "执行结果:查找到第10位结束,SY-SUBRC=4,SY-FDPOS=0

SEARCH search_str FOR '*AP' AND MARK.

WRITE: / '查找包含AP的子字符串,SAP符合条件,默认为查找SAP:',

/ 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "查找包含'AP'子字符串,'SAP'符合条件,默认为查找'SAP',SY-SUBRC=0,SY-FDPOS=11

SEARCH search_str FOR '*A' AND MARK.

WRITE: / '匹配字符串必须是子字符串以空格分开的最后几位:',

/ 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "匹配字符串必须是子字符串以空格分开的最后几位,SY-SUBRC=4,SY-FDPOS=0

对于一些特殊符号,如"*"、"@"、"."等,需要在其两边加上顿号作为修饰。如某字符串为"AAA*BBB",查找符号"*"的位置。

DATA search_str2(50).

MOVE 'AAA*BBB' TO search_str2.

SEARCH search_str2 FOR '.*.' ABBREVIATED.

WRITE: / 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS.

从内表中查找字符串方法与上面基本类似,若内表有多行,那么字符串查找位置默认为从某行数据第一位开始。

DATA:BEGIN OF T_INF OCCURS 0,

LINE(80),

END OF T_INF.

*定义类型后,添加两行数据

APPEND 'HELLO SAP ' TO T_INF.

APPEND 'I am come from china' TO T_INF.

SEARCH T_INF FOR 'SAP' ABBREVIATED.

WRITE: / 'SY-SUBRC=',SY-SUBRC,

/ 'SY-FDPOS=',SY-FDPOS. "从内表第一行中可查找到,SY-SUBRC=0,SY-FDPOS=6

SEARCH T_INF FOR 'am' ABBREVIATED.

WRITE: / 'SY-SUBRC=',SY-SUBRC, "从内表第二行中可查找到,SY-SUBRC=0,SY-FDPOS=2 / 'SY-FDPOS=',SY-FDPOS.

字符串处理

实验1 字符串处理 1.1 实验内容 1. 下面程序输出有无问题,问题在什么地方 #include void main(){ char a[]=“\0”; 空字符串 puts(a); } 问题:____空____________________ 2. 写出程序运行结果,并运行证实 #include void main(){ char a[20]="abcdefgh"; 出现了两个结束标志 a[4]=’\0’; 默认第一个 puts(a); } 结果:_____abcd______________ 3. 指出下面程序中的错误 #include void main(){ char q[8]; strcpy(q, "love all "); printf("%s\n",q); } 4. 写出下面程序的功能,并运行验证。 #include #include void main(){ char str[100],t; int i,len; char t, *p1, *p2; scanf("%s",str); len=strlen(str); for(i=0;i

程序。 #include "stdio.h" void main(){ char a[100]; int i; gets(a); for(i=0;__a[I]!=0 ____;++i); 没有循环体,循环体为空printf("%d\n",i); }

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 <

abap简明教程

abap介绍 ABAP是一种高级企业应用编程语言(Advanced Business Application Progra mming),起源于20世纪80年代。经过不断的发展,现在的版本为ABAP/4,SAP R/3的应用程序就是用ABAP/4编写的。 ABAP/4是面向对象语言。它支持封装性和继承性。封装性是面向对象的基础,而继承性则是建立在封装性基础上的重要特性。 ABAP/4具有事件驱动的特性。 ABAP/4和COBOL具有类似之处。 ABAP/4适合生成报表。 ABAP/4支持对数据库的操作。 SAP最初开发ABAP/4(高级商业应用程序设计)语言仅为内部使用,为应用程序员提供优化的工作环境。经过不断的改进和修改以满足商业领域的需要。现在,A BAP/4已成为SAP开发所有自己的应用程序的仅有工具。 SAP客户用ABAP/4进行其自身开发。这样的开发对R/3标准解决方案适应特殊问题非常重要。ABAP/4开发工作平台包含所有用于创建和维护ABAP/4程序的工具。 ABAP/4的可解释特性使其易于生成、测试并运行程序的中级版本,以便将来生成最终版本。此过程也叫做早期原形处理,意味着您不必丢弃中级版本。 ABAP/4是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。 在ABAP/4开发宝典中文版的第一部分,对ABAP/4的基本特性进行了详细描述。这些特性包括: ABAP/4 - 带有各种类型和结构的声明数据的声明元素 - 数据制作的操作元素 - 控制程序流的控制元素 - 反应外部事件的事件元素 ·ABAP/4支持多种语言。文本摘要(例如,标题、页眉和其他文本)将根据程序代码分别存储。您可以随时在不改变程序代码的情况下更改、转换和维护这些文本摘要。 ·ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。系统会自动执行必需的类型转换。 ·ABAP/4提供一系列功能处理字符串。 ·ABAP/4包含一个叫OpenSQL的SQL子集。用OpenSQL,您可以读取和访问数据库表,与所用的数据库系统无关。

字符串处理

字符串处理 B.基本题(SC6_5B.cpp) 【题目描述】 在主字符串中删除所有子字符串。打开SC6_5B.cpp文件,完成程序的编写。 【输入】 输入文件SC6_5B.in有2行,第1行是主字符串,第2行是子字符串。 【输出】 输出文件SC6_5B.out有1行,即删除所有子字符串后的主字符串。 【输入输出样例1】 2】 【输入输出样例 0≤字符串长度≤1000。 Code: #include "stdio.h" #include "string.h" const int N0=1000; char *index( char *s, char *sub )//在s中查找sub,找到返回首字符地址,找不到返回空{ int i=0, j=0; char *p=sub; if( *sub=='\0' )return NULL; //****************************************** for(i=0; i+strlen(sub)-1

} return NULL; //========================================== } int main() { char s[N0+1],sub[N0+1], *p, *q; int sublen; //freopen( "sc6_5b.in", "r", stdin); //freopen( "sc6_5b.out", "w", stdout); gets(s); gets(sub); sublen=strlen( sub ); while( p=index( s, sub ) ) { q=p+sublen; while( *p++=*q++ ); //在s中p的位置删除sub } puts(s); return 0; } C.拓展题(SC6_5C.cpp) 【题目描述】 输入3行字符串,分别是s字符串, t字符串和r字符串。如果s字符串中有包含t字符串,则用r字符串替换之。例如:s=“12aaabc3aaaaaabc#$%aaabc”,t=“aaabc”,r=“abc”,将s中的“aaabc”替换成“abc”之后,s=“12abc3aabc#$%abc”。输出替换之后的s字符串。打开SC6_5C.cpp文件,完成程序的编写。 【输入】 输入文件SC6_5C.in包含有3行字符串,分别是s字符串, t字符串和r字符串。 【输出】 输出文件SC6_5C.out将s字符串中包含的t字符串,用r字符串替换之,输出替换之后的s字符串。 0≤字符串长度≤1000。 Code:

ABAP常用函数

博客:https://www.360docs.net/doc/7512330465.html,/u2/64908/article_85516.html 常用的系统变量如下: 1. SY-PAGNO当前页号 2. SY-DATUM当前时间 3. SY-LINSZ当前报表宽度 4. SY-LINCT当前报表长度 5. SPACE空字符 6. SY-SUBRC执行状态为0,表示成功. 7. SY-UNAME 用户名 8. SY-UZEIT当前时间 9. SY-TCODE当前的事务代码 10. SY-LSIND列表索引页 11. SY-LISTI上一个列表的索引 12. SY-LILLI绝对列表中选定行的行号 13. SY-CUROW屏幕上的行 14. SY-CUCOL光标列 15. SY-CPAGE列表的当前显示页 16. SY-STARO真实行号 17. SY-LISEL选择行的内容,长度为255 18. SY-LINNO当前行 19. SY-INDEX:做无条件循环是的次数值. 20. SY-FDPOS:子字符串在源串中的位置。 系统常用函数 21. SHIFT STRING:左移字符串。长度减1。 22 CONCATENATE 字符合并 23. SPLIT:拆分字符串。 24. SEARCH:查询字符串。 25. REPLACE:替换字符串。 26. CONDENSE:删除多余的空格。 27. TRANSLATE:转换字符格式,如将'ABC'转换为'ABC' 28. CONVERT TEXT:创建一个可排序的字符串。 29. OVERLAY:用一个字符串覆盖另一个字符串。 30. STRLEN:字符串长度。 31. ABS:取绝对值。 32. COS、SIN、TAN:取三角函数值。 33. ACOS、ASIN、A TAN:反三角函数。 34. COSH、SINH、TANH:双曲函数。 35. EXP:E的幂函数。 36. LOG:底数为E的对数。 37. LOG10:底数为10的对数。 38. SQRT:平方根。 39. SIGN:返回参数符号。

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的字符。

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

示例 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); } 结果:

字符串处理函数大全

字符串处理函数大全 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取代

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.常见的字符串操作的三种类型 (1)提取和删除字符串 这类处理是取出一个字符串中若干个字符串,基本的方法是:确定需要提取子串的开始位置以及子串的长度。如果题目没有明确给出子串的开始位置及长度的信息,那么可以使用pos函数找出子串前后两个空格的位置,从而确定相关信息。 提取子串:用copy函数将子串提取出来。删除子串:用delete过程直接将子串删除。 (2)字符转换 这类处理是将字符对应的ASCII码按规律进行运算,使该字符转换成另一个字符。我们可以使用ord函数求出某一字符的ASCII码,用chr函数将ASCII码转换成字符。 (3)数值与字符转换 在处理位数很多数值很大的数时,可能超过了整数和实数所能表示的最大范围,在这种情况下,只能采用字符串进行处理。可以使用str过程将数值类型的数据转换成字符串类型,使用val过程可将字符串型数据转换成数值类型。 2.字符串处理的注意事项 (1)读入字串长度如果超过255,则要用字符数组保存字符串。 (2)在分析程序的算法效率时,要注意考虑字符串处理的函数和过程的运行时间。 (3)读数据时,不确定字符行数和每行的字符个数时,可用行结束标记eoln和文件结束 标记eof来读数据。 3.常见的字符串过程和函数 (1)length(s)函数,求字符串s的长度。 (2)copy(s,w,k)函数,在字符串s中从w开始截取长度为k的子串。 (3)val(s,k,code)过程,将字符串s转为数值,存在k中,code返回出错的首位置。 (4)str(i,s)过程,将数值i转为字符串s。 (5)delete(s,w,k)过程,在s中删除从第w位开始的k个字符。 (6)insert(s1, s, w)过程,将s1插到s中第w位。 (7)pos(c, s)函数,求字符c在s中的起始位置。 (8)连接号“+”,将两个字符串连接起来。 (9)upcase(ch)过程,将字母ch转换成大写字母。

ABAP语法完整版

SAP ABAP / 4 基础知识学习 数据类型 C :字符串 D :日期型格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2,

END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] [] 系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code SY-INDEX: 当前LOOP循环过的次数 SY-TABIX: 当前处理的是internal table 的第几笔 SY-TMAXL: Internal table的总笔数 SY-SROWS: 屏幕总行数; SY-SCOLS: 屏幕总列数; SY-MANDT: CLIENT NUMBER SY-VLINE: 画竖线 SY-ULINE: 画横线 TYPE 关键字 用来指定资料型态或声明自定资料型态 Example: TYPES: BEGIN OF MYLIST,

字符串处理常用方法

C# string类应用 判断是否包含子串 想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现: public bool Contains (string value) 参数value为待判定的子串。如果包含,返回true;否则返回false。下面的代码判断“Hello”中是否包含两个子串。 1.bool b1 = strA.Contains("ll"); //true 2.Bool b1=strA.Contains("MM"); //false 4.1.4 定位字符和子串 定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。 1.IndexOf/LastIndexOf IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的重载形式如下所示。 (1)定位字符 int IndexOf(char value) int IndexOf(char value, int startIndex)

int IndexOf(char value, int startIndex, int count) (2)定位子串: int IndexOf(string value) int IndexOf(string value, int startIndex) int IndexOf(string value, int startIndex, int count) 在上述重载形式中,其参数含义如下: value:待定位的字符或者子串。 startIndex:在总串中开始搜索的其实位置。 count:在总串中从起始位置开始搜索的字符数。 下面的代码在“Hello”中寻找字符…l?第一次出现的位置。 代码4-7 使用IndexOf寻找字符第一次出现位置:Default.aspx.cs 1. String s=”Hello”; 2. int I = s.IndexOf(…l?)); //2 同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或者子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同,不再赘述。 2.IndexOfAny/LastIndexOfAny IndexOfAny方法功能同IndexOf类似,区别在于,它可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。同样,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的IndexOfAny 重载形式有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,不符合要求 所以需采用二次查找法找到目标

javascript字符串处理函数汇总

javascript字符串处理函数汇总 虽然JavaScript 有很多用处,但是处理字符串是其中最流行的一个。下面让我们深入地分析一下使用JavaScript 操作字符串。 在JavaScript 中,String 是对象。String 对象并不是以字符数组的方式存储的,所以我们必须使用内建函数来操纵它们的值。这些内建函数提供了不同的方法来访问字符串变量的内容。下面我们详细看一下这些函数。 操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的JavaScript 函数为开发人员提供了他们所需要的所有功能: ? concat() –将两个或多个字符的文本组合起来,返回一个新的字符串。 ? indexOf() –返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回-1 。 ? charA T() –返回指定位置的字符。 ? lastIndexOf() –返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。 ? match() –检查一个字符串是否匹配一个正则表达式。 ? substring() –返回字符串的一个子串。传入参数是起始位置和结束位置。 ? replace() –用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。 ? search() –执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回-1 。 ? slice() –提取字符串的一部分,并返回一个新字符串。 ? split() –通过将字符串划分成子串,将一个字符串做成一个字符串数组。

abap字符串操作语法总结

ABAP 字符串操作语法总结 CONCATENATE:合并字符串. CONCATENATE f1 … fn INTO g [SEPARATED BY h]. 1* CONCATENATE合并字符串 2DATA: c1(10) TYPE c VALUE 'Sum', 3c2(3) TYPE c VALUE 'mer', 4c3(5) TYPE c VALUE 'holi ', 5c4(10) TYPE c VALUE 'day', 6c5(30) TYPE c , 7sep(3) TYPE c VALUE ' - '. 8CONCATENATE c1 c2 c3 c4 INTO c5. 9WRITE c5. 10CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep. 11WRITE / c5. -------------------------------------------------------- 输出结果: Summerholiday Sum - mer - holi - day -------------------------------------------------------- SPLIT: 字符串拆分. SPLIT f AT g INTO h1 … hn. SPLIT f AT g INTO TABLE itable. 1* splitting strings 2DATA: string10(60) TYPE c , 3p1(20) TYPE c VALUE '++++++++++++++++++++', 4p2(20) TYPE c VALUE '++++++++++++++++++++', 5p3(20) TYPE c VALUE '++++++++++++++++++++', 6p4(20) TYPE c VALUE '++++++++++++++++++++', 7del10(3) TYPE c VALUE '***'. 8 string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'. 9WRITE string10.

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

ABAP学习笔记

ABAP学习笔记 一、ABAP语法简介: ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。主要的语法有: 数据类型、控制流程、文本摘要、输出格式、程序调试 1、数据类型: (八种基本数据类型) D :日期类型,格式为YYYYMMDD,长度为8 T :时间类型,格式为HHMMSS,长度为6 I :整数类型,默认长度为4,初始值为0 F :浮点类型,默认长度为8,初始值为0,常用于计算 C :字符串类型,定义变量时指定字符个数 N :数字字符串类型,定义变量时指定数值字符个数 X :字节序列类型,定义变量时指定字节数 P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单位的场合. 2、输出格式: WRITE 'First line.'. WRITE 'Still first line.' WRITE / 'Second line.' WRITE /13 'Third line’. 3、控制流程: 使用IF的条件分支 IF <条件表达式1>. < statement block > ELSEIF <条件表达式2>. < statement block > ELSEIF <条件表达式3>. < statement block > ..... ELSE. < statement block > ENDIF. 使用CASE的条件分支

VBA,字符串处理大全

1 VBA中的字符串 2 VBA中处理字符串的函数 2.1 比较字符串 2.2 转换字符串 2.3 创建字符串 2.4 获取字符串的长度 2.5 格式化字符串 2.6 查找字符串 2.7 提取字符/字符串 2.8 删除空格 2.9 返回字符代码 2.10 返回数值代表的相应字符 2.11 使用字节的函数 2.12 返回数组的函数 2.13 连接字符串 2.14 替换字符串 2.15 反向字符串 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 VBA中的字符串 VBA不仅可以处理数字,也可以处理文本(字符串)。VBA提供了两类字符串: 一类为固定长度的字符串,声明时包含指字的字符数。例如,下面的语句 Dim strFixedLong As String*100 声明字符串变量后,无论赋予该变量多少个字符,总是只包含100个字符,但字符串最长不超过65526个字符,且需要使用Trim函数去掉字符串中多余的空格。定长字符串只有在必要时才使用。 另一类为动态字符串。例如,声明字符串变量Dim strDynamic As String后,可以给该变量任意赋值,最多可包含20亿个字符。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 VBA中处理字符串的函数 2.1 比较字符串 通常,在VBA中进行字符串比较时,会用到比较运算符(如=、>等)、Like运算符和StrComp 函数。此外,在模块的开头用Option Compare语句指定比较方式。 2.1.1 比较运算符 可以采用简单的逻辑运算符进行两个字符串的比较,即<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=(等于)、<>(不等于)。此外,还可以使用Like运算符进行比较。2.1.2 StrComp函数 StrComp函数返回字符串比较的结果。其语法为: StrComp(string1,string2[,compare]) 其中,参数string1和strng2为必需的参数,可以是任何有效的字符串表达式。 参数Compare为可选参数,如果该参数为Null,将发生错误。如果参数Compare设置为常数vbUseCompareOption或-1或忽略该参数,将使用Option Compare语句设置进行比较;如果忽略该参数且没有设置Option Compare语句,则按二进制进行比较;如果参数Compare 设置为常数vbBinaryCompare或0,则用二进制进行比较;如果参数Compare设置为常数vbTextCompare或1,则按文本进行比较;如果参数Compare设置为常数vbDatabaseCompare

相关文档
最新文档