PRACTICALS
PRACTICALS
ANSWER ===>
```
#include <stdio.h>
char arr[10][100];
printf("Enter %d sorted strings:\n", n);
for (int i = 0; i < n; i++) {
scanf("%99s", arr[i]);
}
char target[100];
printf("Enter target string to search: ");
scanf("%99s", target);
if (result != -1) {
printf("Target string found at index %d.\n", result);
} else {
printf("Target string not found.\n");
}
return 0;
}
```
PRACTICAL 7
ANSWER =====>
The modified Bubble Sort algorithm with the
optimization:
```
#include <stdio.h>
int arr[n];
printf("Enter %d elements:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int i, j, swapped;
for (i = 0; i < n - 1; i++) {
swapped = 0; // Initialize flag
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
swapped = 1; // Set flag if swap occurs
}
}
if (!swapped) break; // Exit loop if no swaps
}
---------------------------------------------------------------------------
-------
2] Modify the program to handle invalid input, such as
non-string data or strings that exceed the maximum
length.
WITHOUT STRING FUNCTION, POINTER,
PARAMETER
ANSWER =====>
```
#include <stdio.h>
char arr[10][MAX_LENGTH];
printf("Enter %d strings:\n", n);
for (int i = 0; i < n; i++) {
printf("String %d: ", i + 1);
readLine(arr[i], MAX_LENGTH);
int i, j, swapped;
for (i = 0; i < n - 1; i++) {
swapped = 0;
for (j = 0; j < n - i - 1; j++) {
// Compare strings without string function
int k;
for (k = 0; arr[j][k] && arr[j + 1][k]; k++) {
if (arr[j][k] > arr[j + 1][k]) break;
if (arr[j][k] < arr[j + 1][k]) break;
}
if (arr[j][k] > arr[j + 1][k] || (arr[j][k] == '\0' && arr[j
+ 1][k] != '\0')) {
swap(arr[j], arr[j + 1]);
swapped = 1;
}
}
if (!swapped) break;
}
printf("Sorted strings:\n");
for (i = 0; i < n; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
PRACTICAL 9
ANSWER =====>
```
#include <stdio.h>
char arr[MAX_ELEMENTS][MAX_LENGTH];
printf("Enter %d strings:\n", n);
for (int i = 0; i < n; i++) {
printf("String %d: ", i + 1);
int j = 0;
char c;
while ((c = getchar()) != '\n' && j < MAX_LENGTH -
1) {
arr[i][j++] = c;
}
arr[i][j] = '\0';
}
int i, j, minIndex;
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++) {
if (compareStrings(arr[j], arr[minIndex]) < 0) {
minIndex = j;
}
}
if (minIndex != i) {
swap(arr[i], arr[minIndex]);
}
}
printf("Sorted strings:\n");
for (i = 0; i < n; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
---------------------------------------------------------------------------
-------
2] Extend your Selection Sort implementation to support
case-insensitive sorting of strings. Ensure that
uppercase and lowercase versions of the same letter
are treated as equal during sorting. WITHOUT STRING
FUNCTION, POINTER, PARAMETER
ANSWER =====>
```
#include <stdio.h>
char arr[MAX_ELEMENTS][MAX_LENGTH];
printf("Enter %d strings:\n", n);
for (int i = 0; i < n; i++) {
printf("String %d: ", i + 1);
int j = 0;
char c;
while ((c = getchar()) != '\n' && j < MAX_LENGTH -
1) {
arr[i][j++] = c;
}
arr[i][j] = '\0';
}
int i, j, minIndex;
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++) {
if (compareStrings(arr[j], arr[minIndex]) < 0) {
minIndex = j;
}
}
if (minIndex != i) {
swap(arr[i], arr[minIndex]);
}
}
return 0;
}
```
---------------------------------------------------------------------------
-------
😂✌️