QUESTION-11 Remove all Characters in Second String which are present in First String
Answer-
#define CHAR_SIZE 26 void alphacheck(char *, int []); void create(char [], char [], int[]); int main() { char str1[50], str2[50]; int a1[CHAR_SIZE] = {0}; char str2_rem[50]; printf("Enter string1: "); scanf("%s", str1); printf("Enter string2: "); scanf("%s", str2); alphacheck(str1, a1); create(str2_rem, str2, a1); printf("On removing characters from second string we get: %s\n", str2_rem); return 0; } void alphacheck(char *str, int a[]) { int i, index; for (i = 0; i < strlen(str); i++) { str[i] = tolower(str[i]); index = str[i] - 'a'; if (!a[index]) { a[index] = 1; } } printf("\n"); } void create(char str_rem[], char str[], int list[]) { int i, j = 0, index; for (i = 0; i < strlen(str); i++) { index = str[i] - 'a'; if (!list[index]) { str_rem[j++] = str[i]; } } str_rem[j] = '\0'; }
QUESTION-12 Reverse the String using Recursion
Answer-
void reverse(char [], int, int); int main() { char str1[20]; int size; printf("Enter a string to reverse: "); scanf("%s", str1); size = strlen(str1); reverse(str1, 0, size - 1); printf("The string after reversing is: %s\n", str1); return 0; } void reverse(char str1[], int index, int size) { char temp; temp = str1[index]; str1[index] = str1[size - index]; str1[size - index] = temp; if (index == size / 2) { return; } reverse(str1, index + 1, size); }
QUESTION-13 Reverse every Word of given String
Answer-
void main() { int i, j = 0, k = 0, x, len; char str[100], str1[10][20], temp; printf("enter the string :"); scanf("%[^\n]s", str); for (i = 0;str[i] != '\0'; i++) { if (str[i] == ' ') { str1[k][j]='\0'; k++; j=0; } else { str1[k][j]=str[i]; j++; } } str1[k][j] = '\0'; for (i = 0;i <= k;i++) { len = strlen(str1[i]); for (j = 0, x = len - 1;j < x;j++,x--) { temp = str1[i][j]; str1[i][j] = str1[i][x]; str1[i][x] = temp; } } for (i = 0;i <= k;i++) { printf("%s ", str1[i]); } }
QUESTION-14 Delete All Repeated Words in String
Answer-
void main() { char a[100], b[20][20]; int i, j = 0, k = 0, n, m; printf("enter the string\n"); scanf("%[^\n]s", a); for (i = 0;a[i] != '\0';i++) { if (a[i] == ' ') { b[k][j] = '\0'; k++; j = 0; } else { b[k][j] = a[i]; j++; } } b[k][j] = '\0'; for (i = 0;i <= k;i++) { for (j = i + 1;j <= k;j++) { if (strcmp(b[i], b[j]) == 0) { for (m = j;m <= k;m++) strcpy(b[m], b[m + 1]); k--; } } } for (n = 0;n <= k;n++) { printf("%s\n", b[n]); } }
QUESTION-15 Reverse the String using Both Recursion and Iteration
Answer-
void disp_str1_rec(char *); void main() { char str1[100], *ptr; int len1 = 0, i; char ch; printf("Enter the string:\n"); scanf("%[^\n]s", str1); ptr = str1; len1 = strlen(str1); printf("Using iteration:\n"); for (i = len1 - 1; i >= 0;i--) { ch = str1[i]; printf("%c", ch); } printf("Using recurssion:\n"); disp_str1_rec(ptr); } void disp_str1_rec(char *stng) { char ch; if (*stng != '\0') { ch = *stng; stng++; disp_str1_rec(stng); printf("%c", ch); } else return; }