In C: How to fix the code to remove the char from the original string, not just
ID: 3826648 • Letter: I
Question
In C: How to fix the code to remove the char from the original string, not just print not equal character. To fix the code use somthing like strcpy(str,temp);
#include<stdio.h> //Header Files
int main()
{
void rmchr(char[],char); //Function Declaration String,Character passing into function
char s1[]= "abracadabra"; //s1 to abracadabra
char s2[]= "abracadabra"; //s2 to abracadabra
char s3[]= "abracadabra"; //s3 to abracadabra
char s4[]= "aaaa"; //s4 to aaaa
char s5[]= "aaaa"; //s5 to aaaa
printf("String Character Answer ");
printf("%s ",s1); //Printing String Before Passing
rmchr(s1,'a'); //Passing String and Character to remove into rmchr function
printf("%s ",s2); //Printing String Before Passing
rmchr(s2,'b'); //Passing String and Character to remove into rmchr function
printf("%s ",s3); //Printing String Before Passing
rmchr(s3,'n'); //Passing String and Character to remove into rmchr function
printf("%s ",s4); //Printing String Before Passing
rmchr(s4,'a'); //Passing String and Character to remove into rmchr function
printf("%s ",s5); //Printing String Before Passing
rmchr(s5,'n'); //Passing String and Character to remove into rmchr function
return 0;
}
void rmchr(char str[],char ch) //Function Definition
{
char *p; //Pointer Variable
p=&str[0]; //Storing address of First character of String in *p
printf("%c ",ch); //Printing Character to remove
while(*p!='') //Loop for iterating String
{
if(*p!=ch)
{ //Checking if Character is not equal to each character
printf("%c",*p); //Prints that unequal character
}
p++; //Address Increment of *p
}
printf(" ");
}
Explanation / Answer
#include <stdio.h> //Header Files
#include <string.h>
void rmchr(char[],char); //Function Declaration String,Character passing into function
int main()
{
char s1[]= "abracadabra"; //s1 to abracadabra
char s2[]= "abracadabra"; //s2 to abracadabra
char s3[]= "abracadabra"; //s3 to abracadabra
char s4[]= "aaaa"; //s4 to aaaa
char s5[]= "aaaa"; //s5 to aaaa
printf("String Character Unmatched Character Answer ");
printf("%s ",s1); //Printing String Before Passing
rmchr(s1,'a'); //Passing String and Character to remove into rmchr function
printf(" %s ",s2); //Printing String Before Passing
rmchr(s2,'b'); //Passing String and Character to remove into rmchr function
printf(" %s ",s3); //Printing String Before Passing
rmchr(s3,'n'); //Passing String and Character to remove into rmchr function
printf(" %s ",s4); //Printing String Before Passing
rmchr(s4,'a'); //Passing String and Character to remove into rmchr function
printf(" %s ",s5); //Printing String Before Passing
rmchr(s5,'n'); //Passing String and Character to remove into rmchr function
return 0;
}
void rmchr(char str[],char ch) //Function Definition
{
int i, j = 0;
int size;
char ch1;
char str1[100];
size = strlen(str);
printf("%c ",ch); //Printing Character to remove
for (i = 0; i < size; i++) {
if (str[i] != ch) {
printf("%c",str[i]); //Prints that unequal character
ch1 = str[i];
str1[j] = ch1;
j++;
}
}
str1[j] = '';
printf(" %s",str1);
}