nº de veces que aparece un caracter en un string

Monica
07 de Junio del 2004
Hola a todos,...Cómo puedo averiguar el número de veces que un caracter determinado aparece en una cadena de texto?. Por ejemplo,

strcadena = "(aaaaaa)-bbbbb-(ccc)"

Cómo podría averiguar el número de veces que aparece el carácter "("

Gracias

yuval
07 de Junio del 2004
Hola monica.
Bueno lo que voy a poner es un poco rebuscado, ahora mismo no se si esiste una funcion de cadena que lo haga automaticamente. bueno pues mi solucion es:

total= len(cadena) 'nos muestra el numero de caracteres de la cadena
for i=1 to total
letra= Mid(cadena, i, 1) ' con esto nos ira guardando el caracter desde el primero al ultimo de la cadena
if letra= "lo que buscas" then
contador=contador +1
end if
next

Suerte si tienes cualquier duda no dudes en consultarme
SUERTE!!!!

Monica
07 de Junio del 2004
Gracias, pro tu respuesta, yo había pensado hacerlo parecedio, pero no sabí si habría una función específica, porque me parece que en java, si que existe......Un saludo

jtaibo
07 de Junio del 2004
'Función para buscar una cadena en otra con un numero de ocurrencias determinado
'devuelve la posición de la ocurrencia pedida suponiendo que exista, los valores
'devueltos son similares a los devueltos por la función instr
Public Function Buscar(iposIni As Integer, sdonde As String, sQue As String, iVeces As Integer) As Integer
Dim iPos As Integer 'Posicion donde ocurrió la ocurrencia
While iVeces > 0
iPos = InStr(iposIni, sdonde, sQue)
'se intercambian los valores para hacer una nueva busqueda
iVeces = iVeces - 1
iposIni = iPos + 1
' End If
Wend
Buscar = iPos
End Function

Public Function Contar(iposIni As Integer, sdonde As String, sQue As String) As Integer
Dim iVeces As Integer
Dim iPos As Integer
iPos = 1
iVeces = 0
While iPos <> 0
iPos = Buscar(iposIni, sdonde, sQue, 1)
iVeces = iVeces + 1
'esto se podría mejorar
iposIni = iposIni + 1
Wend
Contar = iVeces
End Function
usa estas dos funciones que cree, la función contar no está de todo válidada pq la hice rápido y creo que da un elemento más de los que realmente hay... pero asi que llevas un tiempo trabajando con ella te acostumbras...