Untitled
user_4805151
plain_text
a year ago
3.5 kB
10
Indexable
Never
include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX_TEXT_LENGTH 1000 void viewText(const char* text) { printf("Current Text: %s\n", text); } int main() { char text[MAX_TEXT_LENGTH] = ""; int cursorPosition = 0; char input[MAX_TEXT_LENGTH]; while (1) { printf("Text: %s\n", text); printf("Cursor Position: %d\n", cursorPosition); printf("Enter command (I: Insert, D: Delete, P: Replace, L: Move cursor left, R: Move cursor right, E: Exit): "); scanf(" %s", input); // Convert command to uppercase for easier comparison char command = toupper(input[0]); if (command == 'E') { break; } else if (command == 'I') { char insertText[MAX_TEXT_LENGTH]; printf("Enter text to insert: "); scanf(" %[^\n]s", insertText); // Check if there is enough space in the text to insert the new text if (strlen(text) + strlen(insertText) < MAX_TEXT_LENGTH) { // Shift the existing text to the right to make space for the new text memmove(text + cursorPosition + strlen(insertText), text + cursorPosition, strlen(text + cursorPosition) + 1); // Insert the new text at the cursor position strncpy(text + cursorPosition, insertText, strlen(insertText)); cursorPosition += strlen(insertText); } else { printf("Not enough space to insert the text.\n"); } } else if (command == 'D') { int numDelete; printf("Enter number of characters to delete: "); scanf("%d", &numDelete); // Check if there are enough characters in the text to delete if (strlen(text) >= numDelete) { // Shift the remaining text to the left to overwrite the deleted characters memmove(text + cursorPosition, text + cursorPosition + numDelete, strlen(text + cursorPosition + numDelete) + 1); } else { printf("Not enough characters to delete.\n"); } } else if (command == 'P') { char replaceText[MAX_TEXT_LENGTH]; printf("Enter text to replace: "); scanf(" %[^\n]s", replaceText); // Check if there is enough space in the text to replace the old text with the new text if (strlen(text) - cursorPosition >= strlen(replaceText)) { // Replace the old text with the new text strncpy(text + cursorPosition, replaceText, strlen(replaceText)); cursorPosition += strlen(replaceText); } else { printf("Not enough space to replace the text.\n"); } } else if (command == 'L') { if (cursorPosition > 0) { cursorPosition--; } } else if (command == 'R') { if (cursorPosition < strlen(text)) { cursorPosition++; } } else { printf("Invalid command. Try again.\n"); } } return 0; }