怎么获取指定字符在字符串的位置?

如题所述

VB的Right函数、Left函数提供了从左或从右在已知字符串中截取指定数量的未知字符串的功能,不过要获取某个特定字符前面或者后面的字符串,情形就不一样了,比如我们要在字符串"E:\MyFavourite\001\xxx.xxx"中截取最后一个"\"后面的字符串亦即文件名,单单用上述几个函数是难以实现的,因为文件名的字节数难以确定。这时函数InStrRev就派上用场了。InStrRev返回一个字符串在另一个字符串出现的位置,充分利用它可以轻而易举地截取所要的内容。
下面举个实例来加以说明,希望大家可以从中得到启示。本例仅需要一个TextBox控件。

Private Sub Form_Load()
'声明已知字符串的字节数、"\"所在位置的变量
Dim n As Integer, m As Integer
'声明字符串变量
Dim i As String, j As String
j = "E:\Music\MyFavourite\001\Spring.MP3" '已知字符串初值
i = "\" '要查找的指定字符
For n = 1 To Len(j) '这里用了Len函数来计算已知字符串的字节数
m = InStrRev(j, i, -1) '"\"所在的位置(其中的-1是默认的)
Next n
'显示最后一个"\"后面的字符串
Text1.Text = Right(j, Len(j) - m)
End Sub

运行程序,文本框中的是不是明明白白地躺着"Spring.mp3"?试着改一改j变量,得到的结果是不是预期的?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-22
''给你一个做参考吧~~.net 2008 vb的msdn上的例子

Dim SearchString As String = "XXpXXpXXPXXP" '需要搜索的目标字符串
Dim SearchChar As String = "P" '搜索字符串

Dim TestPos As Integer '返回位置
' 从位置4开始搜索
TestPos = InStr(4, SearchString, SearchChar, CompareMethod.Text) '返回6

' 从位置1开始搜索
TestPos = InStr(1, SearchString, SearchChar, CompareMethod.Binary) '返回9

'注意搜索模式 如果此处以text模式搜索,则返回3
第2个回答  2013-08-22
用C语言的话,可以用for语句实现:
假若一串字符存在 str[100]中,要寻找的字符为'A’;
for(i=0;str[i]!='A' &&str[i]!='\0';i++);
循环结束后,i就指示'A'的位置或者指向字符串结束符。本回答被网友采纳
相似回答