#include<iostream>
#include<string>
#include<cstring>
using namespace std;
void condense_by_removing(char *x, char y);
int main()
{
char *string;
string = new char[50];
cout << "ENter your name: ";
cin >> string;
cout << endl << "Enter the character to remove: ";
char ch;
cin >> ch;
condense_by_removing(string, ch);
cout << endl << "new string is: " << *string;
char dit;
cin >> dit;
return 0;
}
void condense_by_removing(char *z_terminated, char char_to_remove)
{
char *chPtr = new char;
char *trailPtr = new char;
for(int i = 0; i <= strlen(z_terminated); ++i)
{
chPtr = z_terminated;
if(z_terminated[i] == char_to_remove)
{
trailPtr = chPtr;
delete chPtr;
}
}
}Pretend that you're the computer and walk through the code in small steps, tediously detailed. Make sure you really understand what the code is doing.
What exactly happens when you execute "char *chPtr = new char;" ?
What exactly happens when you execute "delete chPtr;" ?
And why do I say that debugging well-written code is especially hard? Because the names, clarity and simplicity in well-written code seduce you into the same mindset as produced the code that has the bug.
I imagine you have myriad responsibilities in the course of your day and I am grateful for the time you are affording me.
I will work on this tonight.
Just finished a Data Structures class and still wrapping my head around Trees and hashing.
Thank you, kindly.
<code> #include<iostream> using namespace std; int main() { for(int i = 1; i <= 100; ++i) { if(i%3==0 &&i%5==0) cout <<"Fizzbuzz ";
else if(i % 3==0) cout <<"FIzz "; else if(i%5==0) cout<<"buzz "; else cout << i << " "; } return 0; } </code>
#include<iostream>
using namespace std;
int main() {
for(int i = 1; i <= 100; ++i) {
if(i%3==0 && i%5==0) cout <<"Fizzbuzz ";
else
if(i%3==0) cout <<"FIzz ";
else
if(i%5==0) cout<<"buzz ";
else cout << i << " ";
}
return 0;
}
Cool. Assuming you knocked that out as quickly as you suggest it shows that you've got good basic skills. Design and control of larger tasks/projects is untested, but it looks like you're well ahead of the basics.Now here's a question: Do you find anything "unsatisfactory" about that code?
The looping sequence, I imagine, doesn't need the if else queries. Probably simpler way to code it. I am definitely untested with larger projects.
for( i= 1,100 )
{
if( i%3==0 ) { print( 'Fizz' ) }
if( i%5==0 ) { print( 'Buzz' ) }
print( '\n' )
}
There's no need to treat FizzBuzz as a special case, as if the number is divisible by both it will have already met the conditions of the previous two statements.I wonder if there's some magic you could sprinkle in to the iterator so it only iterates through numbers which are divisible by 3/5, ignoring the rest?
It probably wouldn't speed the operation up much (if at all) in this case, in a more complex real world scenario though it's best to look at every angle.
Just to get a feel for the kind of code you write, perhaps you could take this little challenge:
If you're brave you can post your code here ...Apart from that, the challenge is to decide what kind of job you want, then make sure you develop a resume to get it. If you want a web developer job then you have to write some web apps. If you want a systems programmer job then you need to write some slick algorithmic code.
Do you know what a B-tree is and when you would use it?