below is the prog i am compiling for replacing spaces with “%20” but when I run it output window shows blank and a message “arrays5.exe has occurred a prob”
#include <iostream>
#include<cstring>
using namespace std;
void method(char str[], int len) //replaces spaces with "%20"
{
int spaces, newlen,i;
for (i=0;i<len;i++)
if(str[i]==' ') spaces++;
newlen=len+spaces*2;
str[newlen]=0;
for (i=len-1;i>=0;i--)
{
if(str[i]==' ')
{
str[newlen-1]='0';
str[newlen-2]='2';
str[newlen-3]='%';
newlen=newlen-3;
}
else
{
str[newlen-1]=str[i];
newlen=newlen-1;
}
}
}
int main()
{
char str[20]="sa h ";
method(str,5);
cout <<str<<endl;
return 0;
}
Please help me finding the error.Thanks
spacesis uninitialised before you increment it.You should give it an initial, default value.
An uninitialised variable will have a value which is undefined by the specification. This value could be 0, if you’re lucky but it is highly likely that this value will be anything in the range of values which the datatype may represent.
Your program will compile and run fine when
spacesis initialised properly.