# String manipulation Problem

Discussion in 'C' started by katkat21, Aug 11, 2009.

1. ### katkat21New Member

Joined:
Aug 11, 2009
Messages:
1
0
Trophy Points:
0
Occupation:
student
Location:
philippines
can someone solve my problem

if the string is college
the output must be
c=1
o=1
l=2
e=2
g=1

it counts that how many a letter does it used
thnk you ^^

2. ### xpi0t0sMentor

Joined:
Aug 6, 2004
Messages:
3,012
203
Trophy Points:
63
Occupation:
Senior Support Engineer
Location:
England
I'd probably use an array of 26 ints initialised to zero, then for each letter encountered increment the relevant element. Pseudocode:
Code:
```int arr[26] initialise to zero
char *str="college"
for each character c in str
arr[str[c]-'a']++
end for
for each element e of arr
if non-zero
print the letter (e+'a') and the count
end if
end for
```
arr[str[c]-'a']++ is the clever bit: str[c] is a char between 'a' and 'z', and subtracting 'a' from that gives us a number from 0-25 which we use as the index into the array. It may be a good idea to add some limits checking to this, for example if (str[c]>='a' && str[c]<='z') so that you don't accidentally increment something not in the array.