Write the code using c programming please In this exercise y
Write the code using c programming please.
In this exercise you will implement several utility functions involving strings. You will place all of your function prototypes in a header file named string utils.h and all of your function definitions in a source file, string utils.c. As before, you should implement your own main test driver program to test your functions, but you need not hand it in. (a) void addChar(char *str, char c, int n) this function should add a char c at index n in string str. The following characters should be shifted up to make room for the inserted character. For example, a call to this function on the string \"Hello World\", \'p\', \'4\', would result in the string \"Hellpo World\" (b) int numChar(const char *src, char c) this example determines the number of character c appears in the string. It does not matter if the letter in the string is capitalized or not. for example, a call to this function on the string \"HellO World\", \'o\', would return 2 (c) int isPalindrome(const char *src) this example determines if the string src is a palindrome or not. Return 1 if the string is a palindrome and 0 if not. For example, a call to this function on the string \"testset\", will return 1 (d) int strCompare(const char *str, const char *str2) Write your own string compare function that compares two strings for equality. Make sure the compare function is case insensitive. Return 0 if the two strings are equal and 1 if they are not. For example, a call to this function on the string \"Hello world\", and \"Hello World\" will return 0 (e) char* strCat(char *str, char *str2) Write your own string without using the strcat() function that concatenates two strings. For example, a call to this function on the string \"Hello\", and \"World\" will return \"Hello World\" (f) void consonant Vowel (char *str) This function will print out the number of consonates and vowels in the string.Solution
string_util.h
#include<stdio.h>
void addChar(char* str,char c,int pos)
{
char *p;
int i;
int len=strlen(str)-1;
p = malloc(len + 2);
for (i = 0 ; i < pos ; ++i)
p[i] = str[i];
p[i++] = c;
for ( ; i < len + 2 ; ++i)
p[i] = str[i - 1];
strcpy(str,p);
printf(\"%s\ \",str );
}
int numChar(const char* src,char c)
{
int count=0;
while(*src!=\'\\0\')
{
char ch=tolower(*src);
if(ch==c)
count++;
src++;
}
return count;
}
int isPalindrome(const char* src)
{
int j=strlen(src)-1;
printf(\"%d\ \",j );
int i=0;
while(i<j)
{
char ch1=tolower(src[i]);
char ch2=tolower(src[j]);
if(ch1!=ch2)
return 1;
i++;
j--;
}
return 0;
}
int strComapre(const char* str1,const char* str2)
{
int c = 0;
while (tolower(str1[c]) == tolower(str2[c])) {
if (str1[c] == \'\\0\' || str2[c] == \'\\0\')
break;
c++;
}
if (tolower(str1[c]) == \'\\0\' && tolower(str2[c]) == \'\\0\')
return 0;
else
return -1;
}
char* strCat(char* str1,char* str2)
{
int i = 0,len = 0;
while(*(str1+len)!=\'\\0\')
len++;
while(*(str2+i)!=\'\\0\')
{
*(str1+len) = *(str2+i);
i++;
len++;
}
*(str1+len) = \'\\0\';
return str1;
}
=======================================================
string_util.c
#include<stdio.h>
#include \"string_util.h\"
int main(int argc, char const *argv[])
{
char str[]=\"Mama\";
addChar(str,\'p\',4);
printf(\"%d\ \",str);
int c=numChar(str,\'o\');
printf(\"%d\",c);
int p=isPalindrome(str);
printf(\"palind %d\ \",p );
printf(\"string compare %d\ \",strComapre(\"Ak\",\"ak\"));
char s1[]=\"Aksahay\";
char s2[]=\"abhanga\";
char* res=strCat(s1,s2);
printf(\"%s\ \",res);
return 0;
}
=====================================
Comment about work


