If I have a const char * of "bad,cold,new" how can I count just the number of commas? Do I need to convert it to string? If so, how do I do that? Do I need to convert all the commas to zeros first? How do i do that?

Recommended Answers

All 4 Replies

just declare another pointer to be the same as the original and increment it until it reaches the end of the string. Along the way count the number of commas etc. You could use the original pointer but its better not to so that you don't destroy the address of the original string.

const char* original = "bad,cold,new";
char *dup = original;
...
...
if( *dup == ',')
{
//   do something
}

So what do I put in place of "//do something" if, for example, I want to change every comma to a zero?

{
',' = '0'; //???
}

>>I want to change every comma to a zero?
You can not do that -- the const keyword means the string can not be changed. All you can do is increment the pointer and look at the contents. If you want to change the string then copy it to another char buffer. After copying the string then you can do this to change it

if( *ptr == ',')
    *ptr = '0';

where ptr is a pointer to the copy of the string.

k, cool, I see what you mean. Thanks!

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.